簡體   English   中英

CGRectMake不起作用

[英]CGRectMake doesn't work

我正在研究基於iOS 7的“ iOS編程指南”中的示例。我需要創建UITextField並將其添加到ViewController

ViewController.m我有:

- (void) viewDidLoad {
    [super viewDidLoad];
    [self createField];  
}

- (void) createField {
    self.textField = [[UITextField alloc] initWithFrame:CGRectMake(20.0f, 35.0f, 280.0f, 30.0f)];
    self.textField.translatesAutoresizingMaskIntoConstraints = NO;
    self.textField.borderStyle = UITextBorderStyleRoundedRect;
    self.textField.placeholder = @"Enter text to share";
    self.textField.delegate = self;
    [self.view addSubview:self.textField];
}

在本書的屏幕快照上, textField出現在狀態欄下方屏幕寬度的中間,但是當我運行它時, textField出現在狀態欄下方屏幕的左上角。

可能的問題是,我在裝有iOS 8的iPhone 6模擬器上運行應用程序。但是我不知道如何解決它。

謝謝!

使用self.textField.translatesAutoresizingMaskIntoConstraints = NO; 幾乎告訴對象它並不真正在乎框架,而是更多地依賴於您賦予它的約束。 將其設置為YES將獲取框架並自動對其施加約束以模仿您提供的框架。

例如,它將應用約束以使幀出現在: CGRectMake(20.0f, 35.0f, 280.0f, 30.0f) 將其設置為NO使用NSLayoutConstraint並以編程方式創建約束。

但是在您的情況下,只需刪除行

self.textField.translatesAutoresizingMaskIntoConstraints = NO;

因為默認情況下它設置為YES

暫無
暫無

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

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