首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AutoLayout在IOS8.3上不能正常工作

AutoLayout在IOS8.3上不能正常工作
EN

Stack Overflow用户
提问于 2016-12-06 21:37:44
回答 1查看 38关注 0票数 0

我正在尝试添加facebook按钮。

因为您不能从界面构建器中拖放facebook按钮,所以需要编程完成。

我添加了一个没有文本的虚拟按钮,并尝试将其约束分配给facebook按钮。它在10.1模拟器上工作,但当我在8.3模拟器上测试时,它没有工作。我想知道我做错了什么?

代码语言:javascript
复制
- (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登录按钮正好在右边的按钮上,与虚拟按钮的位置相匹配。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-06 21:47:27

直接设置对象的frame不使用自动布局。自动布局使用约束,如果不将translatesAutoResizingMaskIntoConstraints设置为false,则以编程方式添加视图将导致添加隐式约束。

当框架下次重新计算布局时,自动布局将覆盖该框架。

但是,您可以很容易地将按钮直接添加到Interface中;FBSDKLoginButton是从FBSDKButton继承的,后者继承自UIButton

您只需在Interface中添加一个UIButton,然后将其自定义类设置为FBSDKLoginButton

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41005377

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档