我想在我的iPhone应用程序中设置UIToolbar
的背景图片。
目前,我使用UIColor
的{{1}}进行设置。
但它没有做我想做的事。
请提出其他解决方案。
答案 0 :(得分:4)
您无需创建自定义类。您可以在UIToolBar中添加一个类别,如下所示
@implementation UIToolbar (UIToolbarCategory)
- (void)drawRect:(CGRect)rect {
UIColor *color = [UIColor colorWithRed:0.547 green:0.344 blue:0.118 alpha:1.000]; //whatever goes well with your background image.
UIImage *img = [UIImage imageNamed: @"your-navbar-img.png"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
[img release];
self.tintColor = color;
[super drawRect:rect];
}
@end
我已经过测试,效果很好。
P.S:我昨晚用4.3进行了测试。它没有按预期工作,但4.2工作正常。我找不到任何理由,一旦找到正确的片段就会更新。对于4.3及更高版本,您应该不支持UIToolbar或UINavigationBar类别的子类。以下代码适用于4.3
#import <UIKit/UIKit.h>
@interface MyAppToolBar : UIToolbar{
}
@end
@implementation MyAppToolBar
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
UIColor *color = [UIColor colorWithRed:0.547 green:0.344 blue:0.118 alpha:1.000]; //wood tan color
UIImage *img = [UIImage imageNamed: @"your-navbar-img.png"];
[img drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
[img release];
self.tintColor = color;
}
@end
限制的问题是,您需要更改所有XIB文件中的每个UIToolbar对象的 customclass 。当你打开UIImagePickerController以匹配你的应用程序风格时,我担心它不会影响导航栏。
答案 1 :(得分:3)
或者您可以创建自定义类并将其分配给您的控件(通过界面构建器),并在其中实现drawRect方法......
喜欢
- (void)drawRect:(CGRect)rect {
UIImage *image = [UIImage imageNamed: @"CustomImage.png"];
[image drawInRect:CGRectMake(0, 0, self.frame.size.width, self.frame.size.height)];
}
答案 2 :(得分:1)