我有两个UITextFields,并且想要在单击按钮时交换它们的位置。也许还可以为交换制作动画。
即:
textFieldOne& textFieldOne使用Interface Builder定位AutoLayout。
按钮单击
答案 0 :(得分:3)
要简单地交换UITextField
的位置,您可以将origin
值分配给对方。
// Store textFieldOne's postition
let tempPos : CGPoint = textFieldOne.frame.origin
UIView.beginAnimations(nil, context: nil)
// Set textFieldOne to textFieldTwo's position
textFieldOne.frame.origin = textFieldTwo.frame.origin
// Set textFieldTwo to textFieldOne's original position
textFieldTwo.frame.origin = tempPos
UIView.commitAnimations()
或者,对于更多 Swift 做事方式,您可以使用Tuple交换值而无需任何临时变量。
UIView.beginAnimations(nil, context: nil)
(textFieldOne.frame.origin, textFieldTwo.frame.origin) = (textFieldTwo.frame.origin, textFieldOne.frame.origin)
UIView.commitAnimations()
答案 1 :(得分:1)
在接收按钮的功能中,您需要保存每个按钮的位置并转移另一个按钮:
交换位置:
let positionButton1 = button1.frame.origin
let positionButton2 = button2.frame.origin
button1.frame.origin = positionButton2
button2.frame.origin = positionButton1
交换仓位和规模:
let positionButton1 = button1.frame
let positionButton2 = button2.frame
button1.frame = positionButton2
button2.frame = positionButton1