IOS 11和Xcode 9中的Navigationbar barbuttonitem错误框架

iddle

我有一个Viewcontroller,在其中设置了社交媒体的三个右侧Navbar按钮。以前,我在Xcode 8中运行应用程序。但是现在,当我将Xcode更新为9.1时,UI受到了干扰。导航栏会更改其宽度,现在会在整个导航栏中传播。该代码设置为宽度,但未按照代码运行。我的代码是这样的,

UIImage* image1 = [UIImage imageNamed:@"fab.png"];
CGRect frameimg1 = CGRectMake(3,0,30,30);
UIButton *someButton1 = [[UIButton alloc] initWithFrame:frameimg1];
[someButton1 setBackgroundImage:image1 forState:UIControlStateNormal];
[someButton1 addTarget:self action:@selector(facebook)
     forControlEvents:UIControlEventTouchUpInside];
[someButton1 setShowsTouchWhenHighlighted:YES];

UIBarButtonItem *mailbutton1 =[[UIBarButtonItem alloc] initWithCustomView:someButton1];

UIImage* image2 = [UIImage imageNamed:@"tt.png"];
CGRect frameimg2 = CGRectMake(20,50,30,30);
UIButton *someButton2 = [[UIButton alloc] initWithFrame:frameimg2];
[someButton2 setBackgroundImage:image2 forState:UIControlStateNormal];
[someButton2 addTarget:self action:@selector(twitter)
     forControlEvents:UIControlEventTouchUpInside];
[someButton2 setShowsTouchWhenHighlighted:YES];

UIBarButtonItem *mailbutton2 =[[UIBarButtonItem alloc] initWithCustomView:someButton2];

    UIImage *image3 = [UIImage imageNamed:@"G+.png"];
CGRect frameimg3 = CGRectMake(0,30,30,30);
UIButton *someButton3 = [[UIButton alloc] initWithFrame:frameimg3];
[someButton3 setBackgroundImage:image3 forState:UIControlStateNormal];
[someButton3 addTarget:self action:@selector(gmail)
     forControlEvents:UIControlEventTouchUpInside];
[someButton3 setShowsTouchWhenHighlighted:YES];

UIBarButtonItem *mailbutton3 =[[UIBarButtonItem alloc] initWithCustomView:someButton3];


[self.navigationItem setRightBarButtonItems:[NSArray arrayWithObjects:mailbutton1,mailbutton2,mailbutton3, nil]];

现在,当我在Xcode 9.1中运行该应用程序时,它会显示我的Navbar按钮, 在此处输入图片说明

粘帕尔玛

我认为在ios 11barbuttonitems中无法使用框架。您必须设置必要的约束。这里的按钮宽度不合适,因此请尝试设置宽度,例如

[[someButton1.widthAnchor constraintEqualToConstant:30.0] setActive:YES];
[[someButton2.widthAnchor constraintEqualToConstant:30.0] setActive:YES];
[[someButton3.widthAnchor constraintEqualToConstant:30.0] setActive:YES];

为每个按钮设置宽度常数!

完成此操作后,如果遇到身高问题,请对heightAnchor

之所以发生这种情况,是因为您的图片必须比按钮的尺寸大,并且您没有给出高度和宽度的限制,因此需要调整按钮的尺寸来调整图片的尺寸!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Xcode9 iOS11应用程序发行版中缺少CFBundleIconName

NavigationBar中的iOS 11 SearchBar

如何在iOS 11中更改NavigationBar的高度?

iOS 8中的NavigationBar栏,色彩和标题文字颜色

Xcode 11.4编译时错误“ iOS 11.0之前的内容和框架布局指南”

iOS:如何在Xcode 11中自动升级CFBundleVersion和CFBundleShortVersionString?(我的旧脚本不再起作用)

iOS 11 + Xcode 9中的refreshPreferences HangTracerEnabled / HangTracerDuration消息

Xcode和iOS9的“资产包必须位于/ OnDemandResources”错误

使用iOS 10的UserNotifications框架的iOS 9中的通知

xCode 9-iOS 11:NSURLConnection-sendAsynchronousRequest失败

IOS 11 XCODE 9:存档错误体系结构arm64的未定义符号:

Xcode 9 iOS 11隐藏控制中心?

Xcode 9-没有iOS 11模拟器

Xcode 9中的Unity3D游戏崩溃-iOS 11

如何在iOS 11的Xcode 9中执行无线调试?没有密码

在iOS 11,Xcode 9中无法将类型'Swift._EmptyArrayStorage'的值强制转换为'NSMutableArray'

iOS 11 / Xcode 9:删除时,UITableViewCell白色背景闪烁

桌面Safari的``开发''菜单中缺少带有iOS11(Xcode 9)设备的iOS模拟器

ios 11 / xcode 9上的UIWebView灰色空间顶部空白

如何在iOS 11的navigationBar中模仿大标题的UITableViewController显示

UITableView iOS11无法滚动-XCode 9

奇怪的NavBar在iOS 11 Xcode 9中拉伸

Alamofire上传完成区块在iOS 9和IOS 11上正常运行,但在iOS 10上错误

iOS 13和Xcode 11中的配置文件问题缺少NFC标签协议

我的问题是我无法在ios 13和xcode 11中发出任何网络请求

MKCoordinateSpanMake错误Xcode 11,iOS 13.2

Xcode:链接外部框架时,iOS链接器错误

Xcode 7和IOS 9中SpriteKit的问题

SwiftUI:iOS 15 中的 NavigationBar 和 TabBar 出现故障