[英]Adjusting the height of the UITextField with editing using iOS Autolayout
[英]Increase UITextField height while using Autolayout
我創建了一個UITextField
子類,並將其框架設置為自定義高度。
CGRect frame = self.frame;
frame.size.height = 40;
self.frame = frame;
現在,在我的UIViewController
nib文件中,我只需拖動一個UITextField
對象,然后使用身份檢查器設置其自定義類。 一切正常。 文本字段的高度現在為40。
問題是,當我為此筆尖文件啟用“自動布局”時,文本字段不再保留新高度。 高度再次回到默認值30。
我認為這是因為在筆尖文件中,高度仍為30,並且自動布局將其固定為30。
在使用自動版式時將文本框高度設置為40的解決方案嗎?
編輯:
如果我添加40px高度限制,則必須對項目中的所有筆尖執行此操作。 有解決辦法一次嗎? 可以以編程方式在自定義UITextField
類中嗎?
如果需要在代碼中進行更改,請為其輸出一個插座,並將其常量值更改為40。因此,如果您的IBOutlet名為heightCon,請執行以下操作:
self.heightCon.constant = 40;
NSArray *verticalConstraints =
[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-(50)-[view(40)]"
options:0 metrics:nil views:viewsDictionary];
現在,視圖將從其視圖的頂部起50像素,高40像素。
然后在自定義視圖類的-(void)awakeFromNib
方法中,添加行[self addConstraints:verticalConstraints];
視覺格式字符串使用的語言在“視覺格式語言”中進行了描述
終於我找到了路。 我很笨,沒早嘗試。 在我的UITextField
自定義類中,我只是替換了以下
CGRect frame = self.frame;
frame.size.height = 40;
self.frame = frame;
同
[self addConstraint:[NSLayoutConstraint constraintWithItem:self
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:self
attribute:NSLayoutAttributeHeight
multiplier:0.0f
constant:40]];
現在,它可以完美運行,而無需在我的UIViewController
類中添加任何代碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.