簡體   English   中英

使用自動布局時更改UIButton的大小?

[英]Changing size of UIButton while using Autolayout?

我是ios的新手。 我正在一個項目中,該項目將在整個應用程序中頻繁使用某個UIView類。 這個類只是一個圖像,它使用背景色來做一些透明的事情。 到目前為止,這個工作正常。 此類有時作為一個單獨的UIView存在,有時作為一個按鈕子視圖存在。

當我將此UIView作為子視圖添加到UIButton時,UIView的全部內容以完整大小顯示,但是按鈕的可單擊區域保持在xib中定義的大小,除非關閉了“使用自動布局”(即使我手動嘗試設置按鈕的框架。)

我想將UIButton放置在xib上作為占位符,然后稍后根據初始化時使用的UIView的覆蓋圖像的大小來定義其大小/可單擊區域。

這是否可能,或者我是否誤解了xib文件/自動布局的用法?

在ViewDidLoad下,我有...

- (void)viewDidLoad{

    [theButton addSubview:_theView];
    CGRect buttonFrame = theButton.frame;
    buttonFrame.size = CGSizeMake(_theView.getSize.width,_theView.getSize.height);
    [theButton setFrame:buttonFrame];
}

但是,當我嘗試調用setFrame之前和之后打印按鈕信息時,框架保持相同的大小。

(請注意,“ _ theView.getSize”是我添加的)

  1. 在“自動布局”下,視圖在viewDidLoad處沒有框架。 viewWillAppear:viewDidLayoutSubviews嘗試您的代碼。
  2. 在“自動布局”下,您無需設置框架。 您可以編輯約束。 設置框架將一直有效,直到下一次布局通過,此時布局將恢復為約束所描述的布局。
  3. 要調整按鈕大小以適合子視圖,可以嘗試以下操作(以視覺格式的語言): |-[theView]-| 但這取決於您的xib有哪些約束條件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM