自动布局在 ios 8.3 上无法正常工作
Posted
技术标签:
【中文标题】自动布局在 ios 8.3 上无法正常工作【英文标题】:AutoLayout does not work properly on ios 8.3 【发布时间】:2016-12-06 21:37:44 【问题描述】:我正在尝试添加 facebook 按钮。
由于您无法从界面构建器中拖放 facebook 按钮,因此您需要以编程方式进行。
我添加了一个没有文本的虚拟按钮,并尝试将其约束分配给 facebook 按钮。它可以在 10.1 模拟器上运行,但是当我在 8.3 模拟器上测试时却不行。我想知道我做错了什么?
- (void)viewDidLoad
[super viewDidLoad];
facebookLoginButton = [[FBSDKLoginButton alloc] init];
[self.view addSubview:facebookLoginButton];
-(void)viewDidLayoutSubviews
[super viewDidLayoutSubviews];
facebookLoginButton.frame = dummyButton.frame;
ios 8.3 在屏幕原点显示 facebook 登录按钮
ios 10.1 将 facebook 登录按钮完全显示在与虚拟按钮位置匹配的右侧按钮上。
【问题讨论】:
【参考方案1】:直接设置对象的frame
不使用自动布局。自动布局使用约束,并且以编程方式添加视图将导致添加隐式约束,除非您将 translatesAutoResizingMaskIntoConstraints
设置为 false
。
自动布局将在下次重新计算布局时覆盖框架。
但是,您可以轻松地直接在 Interface Builder 中添加按钮; FBSDKLoginButton
继承自 FBSDKButton
,后者继承自 UIButton
。
您可以简单地在 Interface Builder 中添加一个 UIButton,然后将其自定义类设置为 FBSDKLoginButton
【讨论】:
以上是关于自动布局在 ios 8.3 上无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章