如何将 UIImageView.image 设置为 UIBarButtonItem

Posted

技术标签:

【中文标题】如何将 UIImageView.image 设置为 UIBarButtonItem【英文标题】:How to set UIImageView.image to UIBarButtonItem 【发布时间】:2011-08-16 08:10:32 【问题描述】:

我想将 UIImageView.image 中的图像设置为我的栏按钮。当我设置图像时,条形按钮工作正常(例如@“cameraImageButton.png”),但是当我这样做时 myBarButton.image = UIImageView.image (并且这个 UIImage 存在,包含相同的@“cameraImageButton.png”)按钮不显示。

这是不起作用的代码:

UIBarButtonItem *cancelBarButton = [[ UIBarButtonItem alloc ] initWithTitle: @"Cancel" style: UIBarButtonItemStyleBordered target: self action: @selector(done)];
cancelBarButton.image = cancelImageView.image;

这是一个有效的(但我想从 cancelImageView 设置图像):

UIBarButtonItem *saveBarButton = [[ UIBarButtonItem alloc ] initWithTitle: @"Save" style: UIBarButtonItemStyleBordered target: self action: @selector(takePhoto)];
saveBarButton.image = [UIImage imageNamed:[NSString stringWithFormat:@"cameraImageButton.png"]];

//init for flexItem and cancelBarButton

NSArray *items = [NSArray arrayWithObjects: cancelBarButton, flexItem, saveBarButton, nil];
[cameraToolbar setItems:items animated:NO];

【问题讨论】:

看起来它应该可以工作 - 你确定 cancelImageView 已经设置了它的图像吗? 【参考方案1】:

UIImageView.image 是属性而不是对象。在UIImageView 类和UIBarButtonItem 类中是@property(nonatomic, retain) UIImage *image。只能传递 object 或 nil 来设置属性。

【讨论】:

您能进一步解释一下吗?肯定 cancelImageView.image 返回一个 UIImage 对象? 好吧,很多年过去了,但我需要澄清这一点。 UIImageView.imageUIImageView 的属性,但显然它也是一个对象。

以上是关于如何将 UIImageView.image 设置为 UIBarButtonItem的主要内容,如果未能解决你的问题,请参考以下文章

SWIFT - 将字符串转换为 UIKit 元素

如何以编程方式在单元格内创建文本字段或标签?

点击标记时如何更新谷歌地图标记图像

使用子视图修改 UIImage [重复]

如何更改 UITableView 背景图像的大小?

将事件添加到 xcode 中的图像时出错