Rup*_*ert 7 iphone xcode cocoa-touch uinavigationbar uibutton
我有一个Tab栏应用程序.在其中一个标签栏中,我有一个导航控制器.我试图设置一个UIButton与图像作为导航栏的右键.
UIButton *refreshButton = [[UIButton alloc] init];
[refreshButton setImage:[UIImage imageNamed:@"refresh_icon.png"] forState:UIControlStateNormal];
[refreshButton addTarget:self action:@selector(refreshSection) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithCustomView:refreshButton];
//[rightButton setImage:[UIImage imageNamed:@"refresh_icon.png"]]; << DOESN'T WORK EITHER
self.navigationItem.rightBarButtonItem = rightButton;
[refreshButton release];
[rightButton release];
Run Code Online (Sandbox Code Playgroud)
但图像没有显示出来.我得到一个隐形按钮.
编辑: 我希望按钮样式为普通或背景为透明,以便只显示图像.因此我使用UI按钮而不是直接使用UIBarButton.
Yan*_*nol 22
您不必创建UIButton并将其用作自定义视图UIBarButtonItem.您可以UIBarButtonItem直接使用图片创建:
UIImage *myImage = [UIImage imageNamed:@"myImage.png"];
UIBarButtonItem *button = [[UIBarButtonItem alloc] initWithImage:myImage style:UIBarButtonItemStyleBordered target:self action:@selector(refreshSection)];
self.navigationItem.rightBarButtonItem = button;
[button release];
Run Code Online (Sandbox Code Playgroud)
-
根据评论更新
在以下位置使用UIImageView自定义视图UIBarButtonItem:
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myImage.png"]];
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithCustomView:imageView];
self.navigationItem.rightBarButtonItem = rightButton;
[imageView release];
[rightButton release];
Run Code Online (Sandbox Code Playgroud)
-
更新
尝试了最后一种方法,虽然这看起来像你想要它,我似乎无法让它来处理水龙头.虽然目标和行动已经确定.
-
最后更新
我已经在问题中运行了初始代码.图像未显示的原因是因为您尚未设置按钮的框架.设置框架后,图像将显示在导航栏中.
这是我使用和测试过的片段:
UIImage *myImage = [UIImage imageNamed:@"paw.png"];
UIButton *myButton = [UIButton buttonWithType:UIButtonTypeCustom];
[myButton setImage:myImage forState:UIControlStateNormal];
myButton.showsTouchWhenHighlighted = YES;
myButton.frame = CGRectMake(0.0, 0.0, myImage.size.width, myImage.size.height);
[myButton addTarget:self action:@selector(tapped:) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithCustomView:myButton];
self.navigationItem.rightBarButtonItem = rightButton;
[rightButton release];
[myButton release];
Run Code Online (Sandbox Code Playgroud)
注意:按下按钮时,我已设置了按钮的视觉高亮显示showsTouchWhenHighlighted属性UIButton.
| 归档时间: |
|
| 查看次数: |
14041 次 |
| 最近记录: |