2010-09-10 27 views
8

Chiều cao mặc định của UITextField với kiểu đường viền UITextBorderStyleRoundedRect là 31px. Đối với một ứng dụng iPad, tôi muốn tạo một UITextField với chiều cao là 60px và định vị văn bản theo chiều dọc ở giữa sao cho nó trông tốt (theo mặc định, văn bản được vẽ chỉ một vài pixel bên dưới đường viền trên cùng của UITextField).UITextField: Đặt văn bản đầu vào vị trí cao hơn và vị trí dọc theo chiều dọc

Nếu tôi làm như sau ...

UITextField *txtLogin = [[UITextField alloc] initWithFrame:CGRectMake(200,200,300,60)]; 
txtLogin.borderStyle = UITextBorderStyleRoundedRect; 

... kết quả sẽ như thế này: http://grab.by/6jRc

Như bạn có thể thấy, nhập văn bản không theo chiều dọc làm trung tâm. Tôi đã cố gắng tìm một giải pháp và phát hiện ra rằng tôi chỉ phải thừa kế lớp tùy chỉnh của riêng mình từ UITextField và ghi đè phương thức - (CGRect)textRectForBounds:(CGRect)bounds. Tuy nhiên, phương pháp này không bao giờ được gọi và theo số this link có lỗi trong API của Apple. Vì vậy, tôi đang tìm kiếm các giải pháp thay thế hoạt động.

Giải pháp tốt để giải quyết vấn đề này và đạt được sự căn chỉnh chính xác theo chiều dọc cho văn bản đầu vào là gì?

Trả lời

21

[txtLogin setContentVerticalAlignment: UIControlContentVerticalAlignmentCenter];

+0

cảm ơn, điều này đã hiệu quả đối với tôi. – kiteloop

Các vấn đề liên quan