如何改变UIButton的大小

Ada*_*dam 12 iphone objective-c

我正在尝试在我的iPhone应用程序中调整UIButton的大小.我有一个UIButton合成,当我调用下面的代码时,它会在屏幕上移动,但按钮的宽度和高度永远不会改变.

button.frame.size = CGRectMake(104, 68, 158, 70);
Run Code Online (Sandbox Code Playgroud)

例如,当我将高度(70)更改为40时,按钮的高度不会改变.但是,如果我更改x或y,它将在屏幕上移动.

有任何想法吗?

Ben*_*ieb 21

上面的代码不应该编译; 您正在尝试将CGRect分配给CGSize.问题在于属性的误导性.你上面做的是类似于:

[button frame].size = CGSizeMake(150, 70);
Run Code Online (Sandbox Code Playgroud)

显然,这实际上不会改变大小.你需要做的是抓取框架(或边界),修改它,然后设置它.试试这个:

CGRect      buttonFrame = button.frame;
buttonFrame.size = CGSizeMake(150, 70);
button.frame = buttonFrame;
Run Code Online (Sandbox Code Playgroud)


Tho*_*ues 9

要更改按钮的大小,请执行以下操作:

[button setFrame:CGRectMake(CGFloat x, CGFloat y, CGFloat width, CGFloat height)];
Run Code Online (Sandbox Code Playgroud)

[button setFrame:CGRectMake(173, 269, 130, 44)];
Run Code Online (Sandbox Code Playgroud)

确保未在Xib文件或Storyboard中设置"使用Autolayout"复选框.如果设置了该选项,则该命令不起作用.