簡體   English   中英

更改UIView內的UIButton框架

[英]Change UIButton frame inside UIView

我想在iPhone 4 / 4s屏幕上顯示不同的UIButton / UILabel / UISlider尺寸。 在父ViewController viewDidAppear:方法中,我能夠通過調用viewFormatting函數來設置新的按鈕框架。

- (void) viewFormatting
{
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
    {
        CGSize result = [[UIScreen mainScreen] bounds].size;

        //iPhone 4
        if (result.height == 480)
        {
            self.myButton.frame = CGRectMake(x, y, width, height);
            self.myLabel.frame = CGRectMake(x, y, width, height);
            //etc.
        }
    }
}

但是,當我嘗試在單獨的UIView類上的initWithFrame:調用相同的viewFormatting方法時,按鈕/標簽框架不會調整大小。 我還嘗試在layoutSubviews內部調用該函數。 我將NSLog放在viewFormatting因此我知道它被正確調用了,但是按鈕/標簽框架沒有改變。

注意:在這兩種情況下,我都在XIB文件中創建了出口。

任何幫助是極大的贊賞!

更新:感謝@nburk,我意識到在我的xib文件中檢查了AutoLayout的使用。 刪除后,上面的代碼可以完美地工作。

我將其留給需要樣品的任何人。

添加此方法:-(void)viewDidLayoutSubviews {[super viewDidLayoutSubviews]; [self viewFormatting]; }

viewDidLayoutSubviews會自動調用。

暫無
暫無

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

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