尝试在 ios 6 中将 uibarbutton 样式的相机添加到 uitableviewcell

Posted

技术标签:

【中文标题】尝试在 ios 6 中将 uibarbutton 样式的相机添加到 uitableviewcell【英文标题】:trying to add a uibarbuttonstyleCamera to a uitableviewcell in ios6 【发布时间】:2013-02-19 06:23:11 【问题描述】:

我正在尝试像这样以编程方式将 uibarbutton-Camera 样式添加到 uitableviewcell 但我在 uitableviewcell 中看不到任何内容

UIButton *newBtn=[UIButton buttonWithType:UIBarButtonSystemItemCamera];
        [newBtn setFrame:CGRectMake(250,10,50,30)];
        [newBtn addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside];
        [newBtn setEnabled:YES];
        [cell addSubview:newBtn];

但是当我使用这段代码时,我在 uitableviewcell 中看到一个圆角矩形按钮

  UIButton *newBtn=[UIButton buttonWithType:UIButtonTypeRoundedRect];
        [newBtn setFrame:CGRectMake(250,10,50,30)];
        [newBtn addTarget:self action:nil forControlEvents:UIControlEventTouchUpInside];
        [newBtn setEnabled:YES];
        [cell addSubview:newBtn];

有什么方法可以添加一个 uibarbuttonstyle 按钮,或者我所能做的就是向 uitableviewcell 添加一个 uibutton 圆角矩形样式?

【问题讨论】:

【参考方案1】:

UIBarButtonItemUIButton 不同。它甚至不继承自UIView,因此您不能将其作为子视图添加到其他视图中。当你打电话时会发生什么

[UIButton buttonWithType:UIBarButtonSystemItemCamera]

UIBarButtonSystemItemCamera 常量对于buttonWithType: 的值无效,因此 UIButton 无法决定返回哪种类型的按钮 - 可能它只是返回一个空的、未配置的或 nil

因此,您的问题没有简单的解决方案。例如,您可以截取相机栏按钮项的屏幕截图,然后使用某种图像编辑器应用程序提取其图像,然后将该图像设置为自定义 UIButton 的图像,如下所示:

UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
[btn setImage:[UIImage imageNamed:@"Camera.png"] forState:UIControlStateNormal];
[cell.contentView addSubview:btn];

【讨论】:

以上是关于尝试在 ios 6 中将 uibarbutton 样式的相机添加到 uitableviewcell的主要内容,如果未能解决你的问题,请参考以下文章

iOS 在整个导航控制器中显示相同的 UIBarButton

UIbarbutton 蓝色而不是背景图片

iOS:UIBarButton 正确大小

如何减少 UINavigationBar IOS 7 中 UIBarButton 项之间的填充?

自定义 UIBarButton 项图像

在 StoryBoard 中为 UIBarButton 显示图像而不是文本