2013-06-14 29 views
7

Tôi đang sử dụng XCode 4.6.1 và đang phát triển cho iOS 6.Thay đổi kích thước một nút trong iOS theo lập trình

Tôi đã thêm nút vào bảng phân cảnh. Tôi đã tạo ra một lối thoát trong tập tin thực thi của tôi ViewController.m:

// 
    // ViewController.m 
    // 

    #import "ViewController.h" 

    @interface ViewController() 

    @property (weak, nonatomic) IBOutlet UIButton *b1; 

    @end 

Tôi cố gắng để thay đổi thuộc tính nút b1 's như sau (trong cùng một tập tin này: ViewController.m):

- (void)viewDidLoad 
    { 
     [super viewDidLoad]; 
     // Do any additional setup after loading the view, typically from a nib. 

     self.b1.alpha = 0.5; 
     self.b1.frame = CGRectMake(0,0,123,412); 
    } 

Khi tôi chạy ứng dụng trong trình mô phỏng, số alpha của nút được đặt thành công thành 0.5. Tuy nhiên, vị trí và kích thước của nút không thay đổi.

Tôi đã thử nhiều cách khác nhau để thực hiện điều đó. Tuy nhiên không có gì có vẻ hiệu quả. Tôi muốn biết tôi đang làm gì sai. Tôi khá mới với mục tiêu C. Bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.

+0

thử đặt khung trong chế độ xemDidLayoutSubviews thay vì viewDidLoad. –

Trả lời

18

Bạn đang thể sử dụng autolayout:

enter image description here

Khi sử dụng autolayout bạn không thể tự thay đổi khung cửa của bạn. Bạn có hai lựa chọn: bạn có thể vô hiệu hóa autolayout (sau đó mã của bạn nên làm việc), hoặc tạo ra các cửa hàng hạn chế của bạn và sau đó sửa đổi ép cách lập trình:

@property (weak, nonatomic) IBOutlet NSLayoutConstraint *widthConstraint; 

và sau đó trong mã của bạn:

self.widthConstraint.constant = 123; 

và cứ như vậy với tất cả các ràng buộc cần được sửa đổi.

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