【问题标题】:How to change position of buttons. objective-c如何更改按钮的位置。目标-c
【发布时间】:2013-08-15 08:23:30
【问题描述】:

stackoverflow 上定位按钮的方法不起作用。我正在使用

self.todayButton.frame = CGRectMake(0, self.todayButton.frame.origin.y, self.todayButton.frame.size.width, self.todayButton.frame.size.height);

我认为这是一个自动布局问题,但我不确定如何解决。

【问题讨论】:

    标签: ios objective-c uibutton autolayout


    【解决方案1】:

    这是Autolayout 的问题。但是您不能在笔尖的特定视图上禁用autolayout。必须在整个笔尖上禁用它。 更好的解决方案是在该按钮上使用setTranslatesAutoresizingMaskIntoConstraints

     [self.todayButton setTranslatesAutoresizingMaskIntoConstraints:YES];
    

    【讨论】:

    • 嗨,当我这样做时,它会像这样给出日志:无法同时满足约束。可能以下列表中的至少一个约束是您不想要的。试试这个:(1)查看每个约束并尝试找出您不期望的; (2) 找到添加了一个或多个不需要的约束的代码并修复它。 (注意:如果您看到不理解的 NSAutoresizingMaskLayoutConstraints,请参阅 UIView 属性 translatesAutoresizingMaskIntoConstraints 的文档
    • 将尝试通过打破约束来恢复 <0x8b2a230 v:>
    【解决方案2】:

    可能值得拆分这段代码,这样您就可以看到新框架的样子:

    CGRect newFrame = self.todayButton.frame;
    NSLog(@"Old: %@", NSStringFromCGRect(newFrame));
    newFrame.origin.x = 0;
    NSLog(@"New: %@", NSStringFromCGRect(newFrame));
    self.todayButton.frame = newFrame;
    

    显示的框架是否与您预期的一样?

    【讨论】:

    • 旧版:{{569, 13}, {73, 44}} 新版:{{0, 13}, {73, 44}} 按钮保持原位。
    • 好吧,至少你已经排除了这一点!我希望 Puneet 的上述回答有助于解决问题。祝你好运。
    猜你喜欢
    • 1970-01-01
    • 2016-10-18
    • 2016-12-15
    • 1970-01-01
    • 2014-05-25
    • 1970-01-01
    • 2019-01-19
    • 2021-11-21
    • 1970-01-01
    相关资源
    最近更新 更多