我正在调整iOS 6应用程序到iOS 7,我遇到了一个奇怪的“错误”.在一个屏幕上有一个rightBarButtonItem,其中有一个简单的图像显示在他的位置.但是,如果应用程序显示警报视图,当我点击警报视
此外,如果我更改按钮的图像(setImage),此图像将显示在不适当的位置.
好吧,我终于找到了自己的解决方案:我有一个带UIBarButtonItemStylePlain的UIBarButtonItem和一个在UIBarButtonItem上用setImage设置的图像.
为了解决这个问题,我创建了一个带有图像的UIButton(用CGRectMake设置它的框架),然后我用initWithCustomView创建了UIBarButtonItem,并使用UIButton作为CustomView.这样,图像总是应该在的位置.
编辑:
UIButton* aButton = [UIButton buttonWithType:UIButtonTypeCustom]; aButton.frame = CGRectMake(0.0, 40.0, 30.0, 30.0); [aButton setBackgroundImage:[UIImage imageNamed:@"anImage.png"] forState:UIControlStateNormal]; [aButton addTarget:self action:@selector(aFunction:) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem *anUIBarButtonItem = [[UIBarButtonItem alloc]initWithCustomView:aButton]; self.navigationItem.rightBarButtonItem = anUIBarButtonItem;