【发布时间】:2013-04-10 21:36:31
【问题描述】:
我从免费图标 DB 下载了一个竖起大拇指图标,它的大小对于按钮来说太大而且它有白色背景。我决定在 pixelmator 中打开它,调整了图标的大小并删除了背景。使用预览打开它时看起来很棒,但是当它设置为 xcode 中的按钮图像时,它显示为一个白色圆圈。
这是编辑后的图标(30x30 png) 这就是它在按钮上的样子
我应该怎么做才能解决这个问题?
编辑/更新: 我尝试了@yunas 代码,它在导航栏中工作不适用于工具栏(甚至没有显示按钮)。
试试这个代码:
UIImage* image = [UIImage imageNamed:@"imageName"];
UIBarButtonItem *likeBtn = [[UIBarButtonItem alloc] initWithImage:image style:UIBarButtonItemStylePlain target:self action:@selector(action_clicked:)];
NSArray* toolbarItems = [NSArray arrayWithObjects:likeBtn,nil];
self.toolbarItems = toolbarItems;
self.navigationController.toolbarHidden = NO;
再次生成带有白色绘图的按钮
所以我想知道:工具栏中是否可以有彩色按钮?也许我正在尝试不可能的事情......
edit/upadte II - 解决方案: 将 UIButton 包装在 UIBarButtonItem 中
@interface StatusUIBarButtonItem : UIBarButtonItem
- (id) initWithStatus: (enum StatusEnum)p_statusEnum;
@end
@implementation StatusUIBarButtonItem
- (instancetype)initWithStatus:(enum StatusEnum)p_statusEnum
{
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
[button setImage:[self getStatusImage] forState:UIControlStateNormal];
[button addTarget:self action:@selector(status_Clicked:) forControlEvents:UIControlEventTouchUpInside];
[button setFrame:CGRectMake(0, 0, 20, 20)];
self = [super initWithCustomView:button];
if (self)
{
self.statusButton = button;
}
return self;
}
@end
然后在 ViewController 类中:
-(void) viewDidLoad
{
StatusUIBarButtonItem* stausBtn = [[StatusUIBarButtonItem alloc] initWithStatus:self.status];
NSArray* toolbarItems = [NSArray arrayWithObjects: stausBtn, nil];
self.toolbarItems = toolbarItems;
self.navigationController.toolbarHidden = NO;
}
我希望这会帮助像我一样想要工具栏中彩色图像的其他人
【问题讨论】:
-
你需要用customview设置uibarbuttonitem
-
这是一个 UIBarButtonItem 标识符:自定义样式:边框色调:默认
-
预期行为:“表示项目正常和突出显示状态的工具栏图像派生自您使用从 UIBarItem 类继承的图像属性设置的图像。例如,图像被转换为白色然后通过为正常状态添加阴影来斜切。” developer.apple.com/library/ios/#documentation/uikit/reference/…
标签: objective-c uibutton icons uitoolbar