2010-10-07 35 views
5

Tôi có một số UITextField và tôi muốn căn giữa trường này ở giữa chế độ xem. Bất kỳ ý tưởng?Đặt một UITextField ở giữa chế độ xem

usernameField = [[UITextField alloc] initWithFrame:CGRectMake(0, 200, 200, 28)]; 

Thay vì CGRectMake(some numbers) - Tôi muốn đặt ở giữa chế độ xem.

Trả lời

8

Bạn có thể trực tiếp gán nó là trung tâm của giao diện bạn muốn:

usernameField = [[UITextField alloc] initWithFrame:CGRectMake(0, 200, 200, 28)]; 
usernameField.center = myView.center; 
2
userNameField = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 200, 28)]; 
userNameField.center = CGPointMake(CGRectGetWidth(someView.bounds)/2.0f, CGRectGetHeight(someView.bounds)/2.0f); 

Where someView là giám sát của userNameField.

+0

Đó là một chút phức tạp nhưng nó hoạt động. Sử dụng trung tâm là mã rõ ràng hơn nhiều. –

+1

Như tôi đã nói ở trên, trung tâm sẽ không hoạt động đối với trường hợp chung. –

1

Tại sao không sử dụng thuộc tính trung tâm của chế độ xem?

userNameField.center = parentViewField.center; 
+0

Điều này giả định parentView là fullScreen. Trung tâm là trong không gian khung, không giới hạn không gian. –

+0

Không, không. Nó tập trung vào chế độ xem phụ trong chế độ xem chính - đó là những gì câu hỏi sẽ hỏi. –

+2

"Trung tâm được chỉ định trong hệ tọa độ của người giám sát của nó và được tính theo điểm". Nếu bạn có 3 chế độ xem sâu và bạn đang cố gắng căn giữa chế độ xem thứ 3 ở chế độ xem thứ 2. Phương pháp của bạn sẽ tập trung nó trong lần đầu tiên. –

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