我有一个功能正在工作,但我不明白为什么它的工作原理。我只是玩了这些值,直到它做了我想要的。我要求解释,因为我担心,如果我不理解它是如何工作的,它可能在某些时候以不可预测的方式表现。
当用户按下长按钮时,代码运行。然后代码将具有30个前导空间和30个尾随空间的图像放大到superview,以便没有前导空格和没有尾随空格。由于图像已经具有比率约束,因此高度会增加以保持图像的宽高比。
我不明白的原因是为什么我只需要从每个约束中减去9以使其大约拥抱超视图边缘,但我必须为每个约束添加30以使其恢复到原始大小。
//LONG PRESS FUNCTION
//Scoring Page: Fact Section
var zoomState = ""
@IBOutlet var fctBx_Img_LeadingCon: NSLayoutConstraint!
@IBOutlet var fctBx_Img_TrailCon: NSLayoutConstraint!
@IBAction func longPress(sender: UILongPressGestureRecognizer) {
if sender.state == UIGestureRecognizerState.Began {
if zoomState == "" {
fctBx_Img_TrailCon.constant = -9
fctBx_Img_LeadingCon.constant = -9
zoomState = "zoomed"
}
else {
fctBx_Img_TrailCon.constant = +30
fctBx_Img_LeadingCon.constant = +30
zoomState = ""
}
}
}
详细说明: 使用Xcode 6.4 使用Swift 使用故事板 使用自动布局,仅限iPhone,仅限纵向 我是编程和app dev的新手。
答案 0 :(得分:1)
你没有减去值-9实际上你正在分配它&你指定的加法部分也是如此+30。所以它恢复到正常值。