use*_*374 4 uitoolbar uibarbuttonitem ios
在iOS7中,我UIBarButtonItem使用颜色为绿色的图像创建了一个和init.但是该图像的最终外观 UIBarButtonItem是具有相同形状但颜色不同的图像.颜色变为蓝色.
代码如下:
_recordVoiceItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"voiceIcon"] style:UIBarButtonItemStylePlain target:self action:nil];
_textView = [[UITextView alloc] initWithFrame:CGRectMake(40, 4, 220, BOTTOM_BAR_HEIGHT - 2*4)];
_textView.layer.borderWidth = 1.f;
_rightItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"modeIcon"] style:UIBarButtonItemStylePlain target:self action:nil];
_bottomBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, self.view.frame.origin.y + self.view.frame.size.height - BOTTOM_BAR_HEIGHT, self.view.frame.size.width, BOTTOM_BAR_HEIGHT)];
_bottomBar.items = @[_recordVoiceItem,[[UIBarButtonItem alloc] initWithCustomView:_textView],_rightItem];
[self.view addSubview:_bottomBar];
Run Code Online (Sandbox Code Playgroud)
我试图UIToolBar通过Interface Builder 创建并添加一些项目.外观很好.在颜色UIBarButtonItem的图像是起源图像的颜色.
我怀疑我需要添加一些代码来设置一些属性,UIToolBar或者UIBarButtonItem如果我想通过编写代码.你能告诉我怎么做吗?
Fra*_*ert 16
虽然它不应该是必需的,但是自iOS7以来我的彩色UIBarButtonItem完成了:
对于目标C:
UIImage* itemImage= [UIImage imageNamed:@"menu.png"]; // Colored Image
itemImage = [itemImage imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
_itemButton = [[UIBarButtonItem alloc] initWithImage:itemImage style:UIBarButtonItemStyleBordered target:self action:@selector(itemSelected:event:)];
Run Code Online (Sandbox Code Playgroud)
UIImageRenderingModeAlwaysOriginal是这里的关键.
对于Swift 3:
// Use the colored image menu.png as a UIBarButtonItem
if var itemImage = UIImage(named: "menu") {
itemImage = itemImage.withRenderingMode(.alwaysOriginal)
let itemButton = UIBarButtonItem(image: itemImage, style: .plain, target: self, action: #selector(self.itemSelected(_:)))
self.navigationItem.rightBarButtonItem = itemButton
}
Run Code Online (Sandbox Code Playgroud)
再次,.withRenderingMode(.alwaysOriginal)是这里的关键.
| 归档时间: |
|
| 查看次数: |
1881 次 |
| 最近记录: |