【问题标题】:How can I change the height of a button with Swift?如何使用 Swift 更改按钮的高度?
【发布时间】:2015-07-13 14:49:57
【问题描述】:

根据屏幕的高度,我想调整视图中按钮的高度。在 Swift 中最简单的方法是什么?

我以这种方式尝试过,也尝试过CGRectMake(),但没有任何改变:

self.myButton.frame.size.height = self.myButton.frame.size.height*scrOpt

如何“更新”框架?

【问题讨论】:

  • self.myButton.frame = CGRectMake(self.myButton.frame.origin.x, self.myButton.frame.origin.y, self.myButton.frame..size.width, self.myButton.frame.size.height*scrOpt)
  • 如果你使用自动布局,你需要更新它的高度约束,否则更新它的框架。
  • 在这里查看解释stackoverflow.com/a/16406097/790842。正如@YogeshSuthar 所说,您必须使用 AutoLayout,并且在 AutoLayout 中更改框架不起作用,您需要处理约束。

标签: ios swift button height


【解决方案1】:

您看不到任何更改的原因可能是因为您使用的是 AutoLayout,并且按钮应用了一些约束,您需要更改高度约束以完成您想要的。

已编辑:在 Swift 中直接更改框架属性似乎是可能的,但在 Objective C 中是不可能的。

【讨论】:

  • frame 不是只读属性,您可以在 Swift 中分配给self.myButton.frame.size.height ...
  • 是的,这似乎是问题所在 - 我开启了自动布局(一般来说似乎运行良好)并尝试现在在代码中更改这个愚蠢的按钮......嗯...... :-/ Thx !
  • 你说得对,马丁。我从 Objective C 开始习惯了。我编辑了我的答案。
【解决方案2】:

如果你使用自动布局,你需要更新它的高度约束,否则更新它的框架

NSLog(@"%@",NSStringFromCGRect(self.myButton.frame));

    NSLog(@"%f",scrOpt);

    self.myButton.frame = CGRectMake(self.myButton.frame.origin.x, self.myButton.frame.origin.y, self.myButton.frame.size.width, self.myButton.frame.size.height*scrOpt)

    NSLog(@"%@",NSStringFromCGRect(self.myButton.frame));

编辑检查这个,看看什么是 Print NSLog

【讨论】:

    猜你喜欢
    • 2013-02-06
    • 2015-06-17
    • 2011-12-28
    • 2014-12-09
    • 2021-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-10
    相关资源
    最近更新 更多