当前位置 : 主页 > 手机开发 > 无线 >

cocoa – 当alertview被关闭时,右侧导航栏按钮会移动

来源:互联网 收集:自由互联 发布时间:2021-06-10
我正在调整iOS 6应用程序到iOS 7,我遇到了一个奇怪的“错误”.在一个屏幕上有一个rightBarButtonItem,其中有一个简单的图像显示在他的位置.但是,如果应用程序显示警报视图,当我点击警报视
我正在调整iOS 6应用程序到iOS 7,我遇到了一个奇怪的“错误”.在一个屏幕上有一个rightBarButtonItem,其中有一个简单的图像显示在他的位置.但是,如果应用程序显示警报视图,当我点击警报视图的“确定”按钮(此警报中的唯一按钮)时,图像会向下移动(50 px左右).没有与此警报视图相关联的操作,它只是提供信息.

此外,如果我更改按钮的图像(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;
网友评论