如何在使用自動佈局進行編輯時增加UITextField
的高度。我有一個UIScrollView
四個UITextField's
。目前所有的textfield都是不變的高度。在編輯時,我只需要一個特定的文本框來根據文本增加高度。使用iOS進行編輯以調整UITextField的高度Autolayout
回答
您需要爲每個文本字段設置高度限制。
而在編輯做結束的方法,你需要通過標籤來識別文本字段,而不是改變適當的文本字段的常量。
for ex。 heightTxt1,heightTxt2,heightTxt3,heightTxt4是約束條件。
比變化,而編輯也結束呼籲文本框1
heightTxt1.constant= (count height on the basis of text and font style,size);
這應該解決您的問題,
第1步:設置沒有線在你的標籤爲0
第2步:添加此方法在類文件
//-- Dynamic label frame depend on text
-(CGRect)getLabelHeightForIndex:(UILabel *)label label_string:(NSString *)label_string
{
CGSize maxSize = CGSizeMake(label.frame.size.width, 999);
CGRect contentFrame;
CGSize contentStringSize;
NSString *version = [[UIDevice currentDevice] systemVersion];
NSString *contentStr = label_string;
if ([version floatValue] < 7.0)
{
contentStringSize = [contentStr sizeWithFont:label.font constrainedToSize:maxSize lineBreakMode:label.lineBreakMode];
}
else
{
NSDictionary *contentDic = [NSDictionary dictionaryWithObjectsAndKeys:label.font, NSFontAttributeName, nil];
contentStringSize = [contentStr boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:contentDic context:nil].size;
}
contentFrame = CGRectMake(label.frame.origin.x, label.frame.origin.y, label.frame.size.width, contentStringSize.height);
return contentFrame;
}
第3步:訪問動態幀標籤使用下面的代碼
//-- Get dynamic label height from given string
CGRect contentFrame = [self getLabelHeightForIndex:Label label_string:Label.text];
Label.frame = contentFrame;
CGFloat LabelHeight = contentFrame.size.height;
首先,你將要存儲的高度限制在一個屬性,特定UITextField
。
例如:@property (nonatomic, weak) IBOutlet NSLayoutConstraint *specificTextFieldHeightConstraint;
然後,實施-[UITextFieldDelegate textFieldDidBeginEditing:]
您UIViewController
子類中:
- (void)textFieldDidBeginEditing:(UITextField *)textField {
specificTextFieldHeightConstraint.constant = expandedHeightGoesHere;
}
最後,你可能希望通過實施-[UITextFieldDelegate textFieldDidEndEditing:]
您UIViewController
子類中,返回的高度恢復正常:
- (void)textFieldDidEndEditing:(UITextField *)textField {
specificTextFieldHeightConstraint.constant = originalHeightConstant;
}
如果在所有UITextFields
之間設置了相等的高度約束,則在編輯時需要將與specificTextField
相關的等高限制的優先級設置爲低,並在編輯結束時將其設置回高。在specificTextField
上仍然需要高度約束,但specificTextField
未編輯時,它的優先級應低於等高度約束,並且在specificTextField
正在編輯時,它的優先級應高於等高度約束。
OP詢問如何根據文本**擴展文本字段**。這雖然回答了一半的問題。 – 2014-11-05 05:44:08
- 1. ios UITextField使用uidatepicker編輯
- 2. 使用AutoLayout將UIView高度調整到其內容
- 3. UILabel:使用AutoLayout將字體大小調整爲高度
- 4. iOS - 以編程方式調整UITableView高度的大小
- 5. 調整UITextfield寬度
- 6. AutoLayout動態調整大小UILabel的高度和寬度
- 7. 以編程方式調整tableview高度
- 8. 如何以編程方式選擇一個UITextField進行編輯
- 9. 禁止僅對UITextField進行編輯?
- 10. 使用Highcharts調整高度
- 11. iOS iPhone 6 Autolayout - 全寬和高度
- 12. iOS基於較大子視圖高度的Autolayout視圖高度
- 13. ios中的UITextField的Autolayout問題
- 14. 使用AutoLayout縮小UIImageView的高度
- 15. 如何在iOS中編輯後調用UITextField上的方法
- 16. Fullcalender調度程序調整行高度
- 17. 網格行高度調整
- 18. 以編程方式調整控件大小後,AutoLayout不起作用 - iOS
- 19. 以編程方式使用Storyboards進行iOS開發的速度?
- 20. 調整尺寸編輯矩形的iOS
- 21. webkit中的TinyMCE編輯器高度(自動調整插件)
- 22. 使用jquery調整寬度所以p元素是4行高
- 23. IFrame根據瀏覽器的「高度」「寬度」進行調整
- 24. 如何在編輯時自動調整Swift中居中的UITextfield的寬度?
- 25. iOS自動調整標籤高度
- 26. 使用AutoLayout調整UIStackView的大小
- 27. 使用Autolayout調整大小的UICollectionViewCell
- 28. iOS - 使用insertSubview時UITableView高度自動調整不起作用
- 29. PHPMYADMIN調整大小編輯器高度大小
- 30. iOS 10中的Autolayout增加高度並使Y位置爲負
這是'UITextField' – 2014-11-05 05:43:13
沒問題。只需在該方法中將uilabel替換爲uitextfield即可。 – svmrajesh 2014-11-05 05:48:21