2016-07-06 8 views
0

버튼이 필요한지 여부를 결정하는 조건이 앱에 있습니다. 그렇지 않다면 공간을 채우기 위해 다른 버튼을 위로 움직여야합니다. 나는 다음과 같은 코드를 통해이 일을하고있다 : 그들은 그들이 (좋은) 새로운 위치로 초기화되지만 그들은 이전 위치로 복귀하는 두 번째의 일부분에 대한 표시이동 후 버튼 재설정 위치

var yMove:CGFloat = 40 

    let y = button.frame.origin.y 
    let x = button.frame.origin.x 
    let h = button.frame.height 
    let w = button.frame.width 


    self.button.frame = CGRectMake(x, y - yMove, w, h) 

(각 버튼) (나쁜). 왜 이런 일이 일어나는 걸까요? 감사합니다, 모든 도움에 감사드립니다!

또한 ViewDidLoad 메서드에서 뷰를 초기화한다는 점에 유의할 가치가 있습니다. 그리고 NO 제약 조건이 버튼에 설정되어 있습니다.

답변

1

버튼의 원래 위치를 저장하고 필요할 때 값을 사용할 수 있습니다.

var ogButtonFrame: CGRect! 
override func viewDidLoad() { 
    super.viewDidLoad() 
//before you do anything with your button save the frame here 
    ogButtonFrame = button.frame 
} 

func returnButtonToOriginalPosition(){ 
    button.frame = ogButtonFrame 
} 

BTW Autolayout 및 제약 조건은 친구입니다 !! 그들을 사용하십시오