2011-01-13 22 views
10

Tại sao chế độ xem UISlider bỏ qua chế độ xem alpha khi được đặt thành 0,5?UISlider bỏ qua alpha khi được đặt thành 0.5

Code:

for (int i = 0; i < 3; i++) { 
    UISlider *slider = [[[UISlider alloc] 
         initWithFrame:CGRectMake(0, i * 30, 200, 30)] 
         autorelease]; 
    slider.alpha = 0.4 + (CGFloat)i/10.0f; 
    [window addSubview:slider]; 
} 

Kết quả:

Example screenshot

Các thanh trượt có alpha giá trị 0,4, 0,5 và 0,6. Và như bạn có thể thấy phần giữa với 0,5 là hoàn toàn mờ đục. Nó seams để chỉ xảy ra với alpha 0,5. Đã kiểm tra các bộ điều khiển giao diện người dùng khác và chúng hoạt động như mong đợi với alpha được đặt thành 0,5.

Sao chép bằng iOS 4.2 trên thiết bị thực và với iOS 3.2 và 4.2 trong trình mô phỏng.

BTW nếu có ai đó tò mò về cách thức và lý do tôi gặp sự cố này, đó là cấu hình trượt hướng trượt cho trò chơi giải đố có tên là Slippy.

+4

Dành một vài phút để chơi với chính bản thân nó, chắc chắn nó trông giống như một con bọ. Tôi sẽ đề nghị nộp một báo cáo lỗi với Apple - http://developer.apple.com/bugreporter/ – Eric

+0

Đã báo cáo nó với táo ngay bây giờ. Sẽ cập nhật khi tôi biết nhiều hơn. –

+0

Không có câu trả lời từ quả táo nào được nêu ra –

Trả lời

1

Như bạn nói rằng điều khiển giao diện người dùng khác làm việc với 0,5 alpha, không nên có sự khác biệt với UISlider, vì họ thừa hưởng alpha property từ UIView lớp và có tham chiếu đến opaque property ("Bạn luôn luôn nên thiết lập giá trị của tài sản này để KHÔNG nếu chế độ xem hoàn toàn hoặc một phần trong suốt "). Có lẽ bạn có thể cố gắng làm theo lời khuyên.

Nếu có thực sự là một lỗi với giá trị 0,5, bạn chỉ có thể thay đổi trong suốt bắt đầu của bạn 0,4-0,41/0,39 w/o bất kỳ khác biệt rõ ràng:

slider.alpha = 0.41f + (CGFloat)i/10.0f; 

Cuối cùng, bạn có thể ra kết quả alpha giá trị một số nhãn để kiểm tra xem chúng có phải là các giá trị mong đợi hay không hoặc xuất giá trị (CGFloat)i để xem có vấn đề gì xảy ra với việc nhập kiểu hay không.

+0

slider.opaque = NO không có đường may để làm việc. Tôi cũng đăng nhập giá trị alpha với NSLog (@ "% f", slider.alpha) và nó in 0.4, 0.5 và 0.6. Trong ứng dụng mà là nhấn lỗi này tôi chỉ có một thanh trượt, vòng lặp là chỉ để minh họa cho vấn đề. Cảm ơn những lời đề nghị. –

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