所以这很奇怪:
我在Storyboard中创建了一个小的UIView,改变了颜色,以便我们可以看到它。 我还创建了一个按钮,这样我就可以让这个视图更大。
如果我不访问NSLocalizedString,它只会起作用。如果我退出该行,它就会停止工作。
为什么会这样?
class MasterViewController: UIViewController {
@IBOutlet weak var bar: UIView!
@IBOutlet weak var button: UIButton!
var integer : Int = 0
@IBAction func makeBarGrow(sender : AnyObject) {
self.integer++
//self.button.setTitle(NSLocalizedString("test \(integer)", comment : "test"), forState:UIControlState.Normal)
self.bar.frame = CGRectMake(self.bar.frame.origin.x,
self.bar.frame.origin.y,
self.bar.frame.size.width + 10,
self.bar.frame.size.height)
}
}
谢谢
答案 0 :(得分:1)
在按钮上设置标签时,自动布局会运行并将条形框架设置回其初始值。启用“自动布局”时,不应调整帧大小。相反,您应该使用大小约束,如下所示:
在条形图上添加自动布局约束以设置其宽度。要执行此操作,请在 Interface Builder 中选择条形视图,然后单击“自动布局图钉”图标 | - [] - | ,单击宽度旁边的框,并将常量设置为所需的初始值。然后单击底部的添加1约束。
通过 Control 从文档布局视图中的约束拖动到您的代码,在ViewController中为此约束添加IBOutlet:
@IBOutlet weak var barWidth: NSLayoutConstraint!
在makeBarGrow
中,将frame
调整代码替换为:
barWidth.constant += 10