这看起来很简单,我无法理解为什么会出错。我正在尝试从另一个UIButton
处理程序更改touchUpInside
的大小。为了重新编写,我在Xcode中创建了一个新的(iOS 6)项目,并将两个按钮拖到默认创建的xib文件中。 touchUpInside
的{{1}}处理程序如下所示。如果我只包含设置button1
origin.x
的语句,我会看到button2
按预期移动。但是,设置按钮的button2
的语句不起作用。事实上,如果我包含该陈述,原点也不会改变。
我可以在xib设计器中调整按钮的大小,以及我设置的唯一属性(
除外)size.width
如何成功更改按钮的大小?
谢谢!
答案 0 :(得分:7)
确定您使用的是AutoLayout,这里发生的事情是iOS AutoLayout机制尝试自动设置您的布局。通过关闭AutoLayout来尝试您的代码。希望你知道如何关闭xcode中的自动布局,如果没有让我知道。
快乐的编码!!!
编辑:
AutoLayout附带iOS 6,这就是为什么你的代码适用于旧版本(iOS 5)的原因。顺便说一下Nick说你可以在xcode中的文件检查器中关闭AutoLayout。
参见附页截图。
答案 1 :(得分:3)
尝试:
CGRect buttonFrame = button.frame;
buttonFrame.size = CGSizeMake(150, 70);
button.frame = buttonFrame;
答案 2 :(得分:0)
使用边界:
[self.button setBounds:CGRectMake(0, 0, 400, 400)];
无论是否启用自动布局,都可以使用!与往常一样,确保您的插座设置正确,以便您可以与按钮通话。
您也可以在自动布局中执行此操作。删除宽度和高度约束并添加新的约束,但如果您的按钮上没有宽度或高度约束(可能是明智的),那么只需设置边界,除非您需要重新定位按钮,它应该只是作为更改按钮边界时,自动布局将自动更新约束。
顺便说一下,除非你用它来手动定位物体,否则你不应该触摸按钮框架。边界用于定尺寸,框架用于定位。答案 3 :(得分:0)
禁用自动布局可能不是您想要的解决方案。
一种可能性是您之前设置了按钮属性标题,现在只更改标题字体大小将无效。你需要再次setAttributedTitle
答案 4 :(得分:0)
如果您尝试更改var data = {
status: "OK",
transfers: [{
to: "address11",
amount: 0.2
},{
to: "address12",
amount: 0.3
}]
};
var a = "Transfer Successful! You transferred " + data.transfers.map(t => t.amount + " to " + t.to).join(", ");
console.log(a);
文本长度,您将受到默认长度的限制,当它太长时,将实现换行(即截断尾部或三个点)。通过以下方式更改默认大小:
UIButton
这适用于大多数情况但不适用于所有 yourButton.setTitle("yourString", for: UIControlState.normal)
s