2011-11-02 33 views
8

Trong ứng dụng của tôi, tôi có một UITextField ở trên cùng của hình nền. Dưới iOS 4 tôi đã phải thiết lập các tài sản backgroundColor để 'clearColor' để làm cho nó trông đúng. Dưới iOS 4 textfield trông như thế này ...Thay đổi hành vi nền của UITextField từ iOS 4 sang iOS 5

enter image description here

Đây là cách tôi muốn nó trông. Bây giờ, kể từ khi nâng cấp lên Xcode 4.3 (iOS 5) khi tôi chạy lại cùng một dự án, hộp trông như thế này ...

enter image description here

Grrr. Vì vậy, dưới iOS 5 tôi đã thay đổi thuộc tính backgroundColor thành 'whiteColor' và nó hoạt động tốt. Tuy nhiên bây giờ, dưới iOS 4.x hộp trông như thế này ...

enter image description here

Lưu ý các góc trắng xấu xí! Vì vậy, xin vui lòng, bất cứ ai có thể cho tôi biết những gì tôi nên làm ở đây để làm cho nó trông bình thường dưới cả iOS 4 và iOS 5 (tức là để trông giống như hình ảnh đầu tiên!).

Rất cám ơn, Simon

+2

Bạn đã xây dựng lại bằng SDK cập nhật chưa? – BoltClock

+1

Chỉ cần biết .. có bạn thử bằng cách nhập QuartzCore và bằng cách đặt textField.layer.backgroundColor = [UIColor clearColor] .CGColor; ? – Mat

+1

Không biết chuyện gì đang xảy ra ở đây - nhưng giờ nó đang hoạt động. Tôi loại bỏ các dòng để thiết lập các tài sản backgroundColor và tất cả có vẻ tốt trong cả 4 và 5. – Simon

Trả lời

3

Tôi gặp vấn đề tương tự vài ngày trước. Để giải quyết điều này, tôi chỉ cần đặt borderStyle và nhận xét dòng backgroundColor. Mọi thứ đều hoạt động tốt, cả iOS4 và iOS5.

// textField.backgroundColor = [UIColor clearColor]; // just leave it, dont't set 
textField.borderStyle = UITextBorderStyleRoundedRect; 
+0

Tôi đã đánh dấu điều này là chính xác vì tôi khá chắc chắn đây là những gì cố định nó cho tôi quá, nhưng trong tất cả sự trung thực không thể được 100% vì nó là một chút của một vấn đề mơ hồ. – Simon

+0

Đây cũng là câu trả lời đúng cho tôi. Tôi đã thực hiện thay đổi duy nhất này và vấn đề của tôi đã được giải quyết, trong tất cả các thử nghiệm iOS 4.3 lên đến 5.1. (Vấn đề trong dự án của tôi chính xác như được mô tả trong bài đăng gốc.) – Douglas

1

Đôi khi bạn có thể phải xây dựng lại dự án của mình. Ngoài ra, hãy thử và thực hiện điều này trong một dự án hoàn toàn mới để xem nếu nó thực sự là một thay đổi mới cho Xcode, hoặc nếu nó chỉ là dự án cụ thể để thu hẹp mọi thứ xuống. Nếu bạn sau đó cô lập nó để được một cái gì đó sai với dự án cụ thể của bạn, hãy thử và "làm điều đó hơn" để xem nếu nó nhấp chuột sau đó. Nhưng tôi thấy bạn giải quyết nó: =)

2

Đây là những gì tôi đã làm để giải quyết vấn đề này, bạn có thể kiểm tra phiên bản iOS chạy trên thiết bị và thực hiện xử lý cho phù hợp, như

float version = [[[UIDevice currentDevice]systemVersion]floatValue]; 
if(version < 5.0) 
{ 
//user clear color 
}else 
{ 
//use white color 
} 

Hy vọng điều này điều này giúp bạn.

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