2012-12-10 2 views
10

몇 가지 해결책을 보았습니다. 그 중 어느 것도 내 문제를 해결하지 못했습니다.프로그래밍 방식으로 UIButton을 이동하는 방법. Objective C xCode

스토리 보드 편집기에서 UIViewController으로 간단히 끌어서 놓기로 작성한 UIButton이 있습니다.

UIButton에는 해당보기에 연결된 UIViewController의 .h 파일에 연결된 콘센트가 있습니다. .m 파일에도 합성되어 있습니다.

@property (strong, nonatomic) IBOutlet UIButton *answerButton; 

이렇게 실행 시간 동안 버튼의 위치를 ​​변경하고 싶습니다.

CGRect btFrame = answerButton.frame; 
btFrame.origin.x = xOne; 
btFrame.origin.y = yOne; 
answerButton.frame = btFrame; 

그러나 이것을 시도 할 때마다 버튼이 움직이지 않습니다.

다른 모든 편집 기능 (예 : setTitle 등)은 작동하지만 어떤 이유로 프레임이 원하는 방식으로 이동하지 않습니다.

모든 통찰력/도움을 주시면 감사하겠습니다.

+0

는 자동 레이아웃을 사용하고 제스처 기능 –

+3

를 사용 .. 파일 관리자에서 "사용 자동 레이아웃을"취소? – Zaphod

+0

@Vikas, 사용자가 단추를 이동하지 않습니다. 단추의 배치는 이전에 선택한 일부 선택 사항에 따라 결정됩니다. xOne, yOne은 이전에 만들어진 선택에 따라 변경되는 점을 만드는 2 개의 int 값입니다. 나는 단지 알려진 int 값으로 프레임을 설정할 수 있기를 원한다. – SamBo

답변

19

단순히

4

자동 크기 조정 마스크를 제거하는 코드가 포함 된 코드를 아래에서 바꾸십시오.

CGRect btFrame = answerButton.frame; 
btFrame.origin.x = xOne; 
btFrame.origin.y = yOne; 
answerButton.autoresizingMask = UIViewAutoresizingNone; 
answerButton.frame = btFrame; 
+3

답장을 감사드립니다. 그것을 시도, 작동하지 않았다. – SamBo

+0

당신은 NSLog xOne, yOne 및 그게 무엇인지 확인 했습니까? –

7

.H 파일

#import <UIKit/UIKit.h> 

@interface ViewController : UIViewController{ 
    IBOutlet UIButton *theButton; 
} 
@property(nonatomic, strong) IBOutlet UIButton *theButton; 
-(IBAction)moveTheButton:(id)sender; 

@end 

하는 .m 파일

-(IBAction)moveTheButton:(id)sender{ 
CGRect btFrame = theButton.frame; 
btFrame.origin.x = 90; 
btFrame.origin.y = 150; 
theButton.frame = btFrame; 

}

이 코드가 한 지점에서 다른 지점으로 버튼을 이동시킨다.

관련 문제