UIButton 未在 iOS 中显示
Posted
技术标签:
【中文标题】UIButton 未在 iOS 中显示【英文标题】:UIButton not showing in iOS 【发布时间】:2011-08-17 10:06:04 【问题描述】:以下是显示工具栏按钮的代码。
UIButton myButton = [UIButton buttonWithType:UIButtonTypeCustom];
UIImage *myImage = [UIImage imageNamed:@"img1.png"];
[myButton setBackgroundImage:myImage forState:UIControlStateNormal];
UIBarButtonItem *myToolbarButton = [[UIBarButtonItem alloc] initWithCustomView:myButton];
工具栏上没有显示任何内容。请告诉我有什么问题。
【问题讨论】:
可能是因为你没有设置按钮的框架... 【参考方案1】:[myToolbar setItems:[NSArray arrayWithObject:myToolbarButton]]; // might help
或者如果它是一个导航栏
self.navigationItem.rightBarButtonItem = myToolbarButton;
您还应该为自定义按钮设置框架,如下所示:
UIButton *mybutton = [[UIButton alloc] initWithFrame:CGRectMake:0,0,200,50];
那么如果你想添加一个选择器/回调:
[myButton addTarget:self action:@selector(someMethod) forControlEvents:UIControlEventTouchUpInside];
【讨论】:
我已经做到了。我只是将 UIBarButtonItem 修改为具有自定义视图,因此将其添加到按钮数组中,然后将工具栏设置添加到它就完成了。 如何设置框架?我找了找,没找到合适的方法。UIButton *mybutton = [[UIButton alloc] initWithFrame:CGRectMake:0,0,200,50];
当我使用自定义视图(UIButton)初始化我的 UIBarButtonItem 时,如何注册函数回调?因为没有方法可以让我们这样做,即没有选择器参数。
谢谢。当我在工具栏上使用自定义视图(UIButton)初始化 UIBarButtonItem 时,我想将 uibarbuttonitemstyle 设置为 uibarbuttomitemstyleplain 以便在单击时发光。我该怎么做呢?因为在 initWithImage 中提供了设置样式选项。【参考方案2】:
self.navigationItem.leftBarButtonItem = myButtonItem; // and change for the right button.
self 是 UIViewController。
【讨论】:
【参考方案3】:您忘记将此按钮添加到工具栏!
NSArray *toolbarItems = [[NSArray alloc] initWithObjects:myToolbarButton,nil]; // you can more buttons here
[aToolbar setItems:toolbarItems animated:NO]; // change to YES if you want to have nice animation
[toolbarItems release];
如果你想在导航栏上添加一个按钮,使用这个:
[self.navigationItem setRightBarButtonItem:myToolbarButton]; // or setLeft...
另外,你应该记得设置myButton
的框架:
[myButton setFrame:CGRectMake(0, 0, 30, 32)];
【讨论】:
以上是关于UIButton 未在 iOS 中显示的主要内容,如果未能解决你的问题,请参考以下文章
具有目标操作的单元格上的 iOS UIButton,单元格未在 (id)sender 中更新