您也可以創建一個UINavigationBar類別類並覆蓋drawLayer:inContext:方法。在drawLayer:inContext:方法中,您可以繪製想要使用的背景圖像。
- (void) drawLayer:(CALayer *)layer inContext:(CGContextRef)context
{
if ([self isMemberOfClass:[UINavigationBar class]] == NO) {
return;
}
UIImage *image = (self.frame.size.width > 320) ?
[UINavigationBar bgImageLandscape] : [UINavigationBar bgImagePortrait];
CGContextClip(context);
CGContextTranslateCTM(context, 0, image.size.height);
CGContextScaleCTM(context, 1.0, -1.0);
CGContextDrawImage(context, CGRectMake(0, 0, self.frame.size.width, self.frame.size.height), image.CGImage);
}
有關自定義UINavigationBar的this和this的外觀可能會有所幫助一個完整的演示Xcode項目。
我可以使用UILabel的「文本可見,背景透明」,但仍然需要按鈕... – JOM 2010-02-08 06:55:16