我在更改viewcontroller时遇到问题,uinavigationbar中添加的uibutton已经重叠。我尝试了以下代码:
int submit_x = 170 ;
int refresh_x =100;
UIButton *refreshbtn=[UIButton buttonWithType:UIButtonTypeCustom];
UIImage *imageRefresh = [UIImage imageNamed:@"Refresh.png"];
[refreshbtn setImage:imageRefresh forState:UIControlStateNormal];
[refreshbtn setFrame:CGRectMake(refresh_x, 7, imageRefresh.size.width, imageRefresh.size.height)];
[refreshbtn addTarget:self action:@selector(refreshClicked:) forControlEvents:UIControlEventTouchUpInside];
refreshbtn.backgroundColor = [UIColor clearColor];
[self.navigationController.navigationBar addSubview:refreshbtn];
我在ViewDidAppear()中添加了上面的代码。如何解决此问题?
我相信您想将UIBarButtonItem而不是UIButton添加到导航控制器中
UIBarButtonItem *refreshButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refreshClicked:)];
self.navigationController.navigationItem.rightBarButtonItem = refreshButton;
试试看,让我知道你追求的是什么。
//扩展
UIButton *refreshbtn=[UIButton buttonWithType:UIButtonTypeCustom];
UIImage *imageRefresh = [UIImage imageNamed:@"Refresh.png"];
[refreshbtn setImage:imageRefresh forState:UIControlStateNormal];
[refreshbtn setFrame:CGRectMake(refresh_x, 7, imageRefresh.size.width, imageRefresh.size.height)];
[refreshbtn addTarget:self action:@selector(refreshClicked:) forControlEvents:UIControlEventTouchUpInside];
refreshbtn.backgroundColor = [UIColor clearColor];
UIBarButtonItem *yourButton = [[UIBarButtonItem alloc] initWithCustomView: refreshbtn];
self.navigationItem.rightBarButtonItem = yourButton;
您应该将UIButton直接添加到导航控制器中。
//扩展
创建另一个UIBarButtonItem(与上面的方法相同),然后像这样添加:
self.navigationItem.rightBarButtonItems = @[yourButton, yourAnotherButton];
它应该与iOS6和7 配合良好