2012-12-10 23 views
10

Tôi đã nhìn thấy một số giải pháp, không có giải pháp nào đã làm việc cho vấn đề của tôi.Cách di chuyển UIButton theo Lập trình. Mục tiêu C xCode

Tôi có một UIButton được tạo bằng cách kéo/thả vào UIViewController trong trình chỉnh sửa Bảng phân cảnh.

UIButton có ổ cắm được liên kết với tệp .h cho số UIViewController được liên kết với chế độ xem đó. Nó cũng được tổng hợp trong tập tin .m.

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

Tôi muốn thay đổi vị trí của nút trong thời gian chạy như thế này;

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

Tuy nhiên bất cứ khi nào tôi thử điều này, nút từ chối di chuyển.

Tất cả các chức năng chỉnh sửa khác (như setTitle vv) đều hoạt động, nhưng vì lý do nào đó, khung sẽ không di chuyển theo cách tôi muốn.

Bất kỳ thông tin chi tiết/trợ giúp nào sẽ được đánh giá cao.

+0

Sử dụng các chức năng cử chỉ –

+3

Bạn đang sử dụng tính năng tự động bố trí? – Zaphod

+0

@Vikas, người dùng không di chuyển nút. Vị trí của nút được xác định bởi một số lựa chọn do chúng tạo ra trước đây. xOne, yOne là 2 giá trị int tạo ra một điểm được thay đổi dựa trên các lựa chọn được thực hiện trước đó. Tôi chỉ muốn có thể thiết lập khung cho các giá trị int đã biết. – SamBo

Trả lời

19

Đơn giản chỉ cần bỏ chọn "Use Autolayout" trong tập tin Thanh tra ..

4

Thay thế mã của bạn theo bên dưới, bao gồm mã để xóa mặt nạ tự động thay đổi kích thước.

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

Đánh giá cao câu trả lời của bạn. Đã thử nó, không hoạt động. – SamBo

+0

Bạn đã NSLog xOne, yOne và kiểm tra xem nó là gì? –

7

.h tập tin

#import <UIKit/UIKit.h> 

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

@end 

.m tập tin

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

}

Mã này di chuyển nút từ điểm này đến điểm khác.

Các vấn đề liên quan