Tôi có một ứng dụng chạy hoàn hảo trên iOS 6. Tôi đã thiết lập một hiệu ứng nhấp nháy để ngón tay cái của UISlider theo cách này:UISlider thumbTintColor không thay đổi trên iOS 7 (tốt trên iOS 6)
-(void)startBlinkingSlider{
isSliderBlinking = YES;
isSliderTinted = NO;
[self performSelector:@selector(toggleSliderColor) withObject:nil afterDelay:0.2];
}
-(void)toggleSliderColor{
if(isSliderBlinking){
if(isSliderTinted){
self.effectAmountSlider.thumbTintColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1];
}else{
self.effectAmountSlider.thumbTintColor = [UIColor colorWithRed:255 green:0 blue:0 alpha:1];
}
isSliderTinted = !isSliderTinted;
[self performSelector:@selector(toggleSliderColor) withObject:nil afterDelay:0.2];
}
}
-(void)stopBlinkingSlider{
isSliderBlinking = NO;
isSliderTinted = NO;
self.effectAmountSlider.thumbTintColor = [UIColor colorWithRed:0 green:0 blue:0 alpha:1];
}
Khi tôi gọi startBlinkingSlider
thanh trượt của tôi bắt đầu nhấp nháy màu đỏ trong iOS 6. Nếu tôi chạy cùng một ứng dụng chính xác trên thiết bị iOS 7 của mình thì sẽ không có gì xảy ra. Ngón tay cái của thanh trượt giữ lại màu trắng ban đầu của nó. Tôi đã đặt một điểm ngắt trên dòng nơi tôi đặt thumbTintColor
. Trong trình gỡ lỗi, dưới đây là những gì tôi nhận được:
(lldb) po self.effectAmountSlider.thumbTintColor
error: failed to get API lock
(lldb) po self.effectAmountSlider.thumbTintColor
UIDeviceRGBColorSpace 0 0 0 1
(lldb)
Tôi đã nhập chính mã tương tự và nhận được thư lạ trong thư đầu tiên. Tuy nhiên, kết quả thứ hai là chính xác. Sau đó, sau khi cài đặt thành màu đỏ, tôi cũng nhận được kết quả chính xác:
(lldb) po self.effectAmountSlider.thumbTintColor
UIDeviceRGBColorSpace 1 0 0 1
Mặc dù trình gỡ lỗi hiển thị đúng giá trị, tôi không nhận được thay đổi trực quan trên thanh trượt. Nó vẫn còn màu trắng, màu sắc không thay đổi theo bất kỳ cách nào. Tôi đã tìm kiếm các tài liệu của Apple tại đây: https://developer.apple.com/library/ios/documentation/userexperience/conceptual/TransitionGuide/Controls.html
Nó không nói gì về thumbTintColor của UISlider không hoạt động như iOS 6. Nó sẽ vẫn hoạt động như mong đợi. Tôi đã kiểm tra chuỗi và mọi thứ đang chạy trên chuỗi chính. toggleSliderColor
luôn luôn là chủ đề chính vì vậy nó không phải là một vấn đề luồng. Tại sao ngón tay cái của tôi không hoạt động?
Cảm ơn, có thể.
Điều này giống như một lỗi đối với tôi. Tôi chỉ cố gắng thiết lập màu sắc cho một UISlider khi tôi tạo ra nó, đơn giản hơn nhiều so với những gì bạn đang làm với nhấp nháy, nhưng nó vẫn tiếp tục trắng khi tôi chạy nó. Tôi sẽ háo hức được nghe nếu đây là lỗi được xác nhận hoặc nếu chúng tôi đang làm điều gì sai. – GeneralMike
@GeneralMike nếu bạn đã nhập một lỗi, hãy đăng nó, xem câu trả lời của tôi bên dưới, chúng tôi nhận được của chúng tôi dupped của bạn. –
@DavidH: Tôi chưa gửi báo cáo lỗi, tôi chỉ đang suy đoán rằng đó là lỗi.Thông tin từ 'Hướng dẫn chuyển đổi giao diện người dùng iOS 7 'mà bạn tham chiếu trong câu trả lời của bạn dường như gợi ý có điều gì đó đang xảy ra ở đây. Tôi đã tạm thời được chuyển đến một dự án khác, nhưng khi tôi quay lại điều này, tôi sẽ gửi một báo cáo lỗi và đánh lừa bạn. – GeneralMike