如何用Swift更改按钮的高度?

问题描述:

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

我尝试了这种方式,并与CGRectMake()但什么都没有改变:

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

我如何“更新”的框架?

+0

'self.myButton.frame = CGRectMake(self.myButton.frame.origin.x,self.myButton.frame.origin.y,self.myButton .frame..size.w宽度,self.myButton.frame.size.height * scrOpt)' –

+1

如果您使用自动布局,则需要更新其高度约束,否则更新其框架。 –

+0

请参阅http://*.com/a/16406097/790842。正如@YogeshSuthar所说的,你必须使用AutoLayout,而在AutoLayout中更改框架不起作用,你需要处理约束。 – iphonic

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

编辑:更改相框性能直接似乎是可能的,但斯威夫特是不可能的目的C.

+1

'框架'不是只读属性,你*可以*分配给'self.myButton.frame.size.height'在Swift中...... –

+0

是的,这似乎是问题 - 我有AutoLayout在一般情况下工作良好),并尝试改变这个愚蠢的按钮,现在在代码中......嗯......: -/Thx! – Cuno

+0

你是对的马丁。我已经习惯了Objective C中的那个。我编辑了我的答案。 – pteofil

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

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)); 

编辑检查这一点,看看是打印NSLog

+0

这是我之前尝试的,但没有任何改变。 – Cuno

+0

@Cuno检查我编辑的答案 –