Câu trả lời:
CGRect frameRect = textField.frame;
frameRect.size.height = 100; // <-- Specify the height you want here.
textField.frame = frameRect;
Bạn không thể thay đổi chiều cao của kiểu viền tròn. Để đặt chiều cao, chỉ cần chọn bất kỳ kiểu viền nào ngoài đường viền được làm tròn trong Xcode:
Cuối cùng tôi đã tìm thấy bản sửa lỗi cho việc này!
Như chúng tôi đã tìm thấy, IB không cho phép chúng tôi thay đổi chiều cao của kiểu viền góc tròn. Vì vậy, thay đổi nó thành bất kỳ phong cách khác và thiết lập chiều cao mong muốn. Trong mã thay đổi kiểu viền trở lại.
textField.borderStyle = UITextBorderStyleRoundedRect;
viewWillLayoutSubviews
. Tôi đã thêm một hình ảnh vào trường leftView
văn bản và một số văn bản, và khi điều này được thực hiện trong viewDidLoad
cả hai đều kéo dài một cách kỳ lạ.
textField.borderStyle = .RoundedRect
Nếu bạn đang sử dụng Giao diện tự động thì bạn có thể thực hiện trên bảng Story.
Thêm một ràng buộc chiều cao cho trường văn bản, sau đó thay đổi hằng số ràng buộc chiều cao thành bất kỳ giá trị mong muốn nào. Các bước được hiển thị dưới đây:
Bước 1: Tạo ràng buộc chiều cao cho trường văn bản
Bước 2: Chọn ràng buộc chiều cao
Bước 3: Thay đổi giá trị không đổi của Chiều cao ràng buộc
borderStyle
thành bất cứ thứ gì ngoại trừ làm tròn. Sử dụng Editor -> Size to Fit Content
để có bố trí làm việc của nó. Sử dụng thanh tra tài sản trên của bạn UITextField
để kiểm tra chiều cao của nó. Sử dụng công cụ này để thiết lập giới hạn chiều cao của bạn và bây giờ bạn có thể thay đổi mặt borderStyle
sau thành hình tròn.
1.) Thay đổi Kiểu viền trong InterfaceBuilder.
2.) Sau đó, bạn có thể thay đổi kích thước.
3.) Tạo IBOutlet cho TextField của bạn và nhập mã sau đây viewDidLoad()
để thay đổi BorderStyle trở lại.
textField.borderStyle = UITextBorderStyleRoundedRect;
Swift 3:
textField.borderStyle = UITextBorderStyle.roundedRect
trong chế độ xem của bạnWillAppear đặt các góc là tròn
yourUITextField.borderStyle = UITextBorderStyleRoundedRect;
Thực hiện theo hai bước đơn giản và tăng chiều cao của bạn UItextField
.
Bước 1: nhấp chuột phải vào tệp XIB và mở nó như trong "Mã nguồn".
Bước 2: Tìm cùng một UITextfield
nguồn và đặt khung theo ý muốn.
Bạn có thể sử dụng các bước này để thay đổi khung của bất kỳ điều khiển táo nào.
Bản cập nhật cho iOS 6: sử dụng bố cục tự động, mặc dù bạn vẫn không thể đặt chiều cao của UITextField từ Trình kiểm tra kích thước trong Trình tạo giao diện (ít nhất là từ Xcode 4.5 DP4), giờ đây có thể đặt ràng buộc Chiều cao nó, bạn có thể chỉnh sửa từ Trình tạo giao diện.
Ngoài ra, nếu bạn đang đặt chiều cao của khung theo mã, bố cục tự động có thể đặt lại tùy thuộc vào các ràng buộc khác mà chế độ xem của bạn có thể có.
Tôi biết đây là một câu hỏi cũ nhưng tôi chỉ muốn thêm nếu bạn muốn dễ dàng thay đổi chiều cao của UITextField từ bên trong IB, sau đó chỉ cần thay đổi loại đường viền của UITextfield thành bất kỳ loại nào khác ngoài loại góc tròn mặc định. Sau đó, bạn có thể kéo dài hoặc thay đổi các thuộc tính chiều cao dễ dàng từ bên trong trình chỉnh sửa.
@IBDesignable
class BigTextField: UITextField {
override func didMoveToWindow() {
super.didMoveToWindow()
if window != nil {
borderStyle = .roundedRect
}
}
}
UITextField
bằng BigTextField
.Border Style
thành none
.Đóng góp thảm hại của tôi cho vấn đề ngu ngốc này. Trong IB đặt kiểu là không để bạn có thể đặt chiều cao, sau đó trong IB đặt lớp là lớp con của kiểu UITextField
đó buộc kiểu phải được làm tròn.
@interface JLTForcedRoundedRectTextField : UITextField
@end
@implementation JLTForcedRoundedRectTextField
- (void)awakeFromNib
{
self.borderStyle = UITextBorderStyleRoundedRect;
}
@end
Nó giúp tôi không phải hack tệp XIB hoặc viết mã kiểu vào trình điều khiển xem của tôi.
Không thể điều chỉnh chiều cao của UITextField trong Trình kiểm tra thuộc tính khi nó có kiểu viền góc tròn mặc định, nhưng thêm một ràng buộc về chiều cao (cộng với bất kỳ ràng buộc nào khác được yêu cầu để đáp ứng hệ thống tự động thanh toán - thường chỉ bằng cách sử dụng Thêm ràng buộc bỏ qua) cho nó và điều chỉnh các ràng buộc sẽ điều chỉnh chiều cao của trường văn bản. Nếu bạn không muốn các ràng buộc, các ràng buộc có thể được loại bỏ (Xóa các ràng buộc) và trường văn bản sẽ vẫn ở độ cao đã điều chỉnh.
Hoạt động như một lá bùa.
UITextField *txt = [[UITextField alloc] initWithFrame:CGRectMake(100, 100, 100, 100)];
[txt setText:@"Ananth"];
[self.view addSubview:txt];
Hai đối số cuối cùng là chiều rộng và chiều cao, Bạn có thể đặt theo ý muốn ...
Bạn có thể sử dụng thuộc tính khung của trường văn bản để thay đổi khung Like-Textfield.frame = CGRECTMake (trục x, trục y, chiều rộng, chiều cao)
Điều này khá đơn giản.
yourtextfield.frame = CGRectMake (yourXAxis, yourYAxis, yourWidth, yourHeight);
Khai báo trường văn bản của bạn như một thuộc tính tuyệt vời và thay đổi khung của nó ở bất cứ nơi nào bạn muốn thực hiện trong mã của mình.
Chúc mừng mã hóa!
Nếu bạn đang tạo rất nhiều UITextFields
, có thể nhanh hơn để phân lớp UITextView
và ghi đè phương thức setFrame bằng
-(void)setFrame:(CGRect)frame{
[self setBorderStyle:UITextBorderStyleRoundedRect];
[super setFrame:frame];
[self setBorderStyle:UITextBorderStyleNone];
}
Bằng cách này bạn chỉ có thể gọi
[customTextField setFrame:<rect>];