Các tài liệu hướng dẫn của Apple (hiện tại) khẳng định ...
Khi sử dụng lớp UIVisualEffectView, hãy tránh các giá trị alpha nhỏ hơn 1.
và
Đặt alpha thành nhỏ hơn 1 trên chế độ xem hiệu ứng hình ảnh hoặc bất kỳ chế độ xem siêu cấp nào của nó khiến nhiều hiệu ứng trông không chính xác hoặc hoàn toàn không hiển thị.
Tôi tin rằng một số bối cảnh quan trọng bị thiếu ở đây ...
Tôi đề nghị rằng mục đích là tránh các giá trị alpha nhỏ hơn 1 để có chế độ xem liên tục. Theo ý kiến khiêm tốn của tôi, điều này không áp dụng cho hoạt ảnh của một chế độ xem.
Quan điểm của tôi - Tôi đề nghị rằng các giá trị alpha nhỏ hơn 1 có thể chấp nhận được cho các hoạt ảnh.
Thông báo đầu cuối cho biết:
UIVisualEffectView đang được yêu cầu để tạo hiệu ứng cho độ mờ của nó. Điều này sẽ làm cho hiệu ứng có vẻ bị hỏng cho đến khi độ mờ trở về 1.
Đọc kỹ điều này, hiệu ứng sẽ có vẻ bị phá vỡ. Quan điểm của tôi về vấn đề này:
- sự phá vỡ rõ ràng chỉ thực sự quan trọng đối với một quan điểm tồn tại - không thay đổi;
- một
UIVisualEffectchế độ xem liên tục / không thay đổi với giá trị alpha nhỏ hơn 1 sẽ không hiển thị như dự kiến / thiết kế của Apple; và
- thông báo trong thiết bị đầu cuối không phải là lỗi, chỉ là một cảnh báo.
Để mở rộng câu trả lời của @ jrturton ở trên đã giúp tôi giải quyết vấn đề của mình, tôi muốn thêm ...
Để xóa mờ việc UIVisualEffectsử dụng mã (Objective-C) sau:
UIView.animateWithDuration(1.0, animations: {
// EITHER...
self.blurEffectView.effect = UIBlurEffect(nil)
// OR...
self.blurEffectView.alpha = 0
}, completion: { (finished: Bool) -> Void in
self.blurEffectView.removeFromSuperview()
} )
Tôi sử dụng thành công cả hai phương pháp: đặt thuộc effecttính thành nilvà đặt thuộc alphatính thành 0.
Lưu ý rằng cài đặt effectđể niltạo ra "đèn flash đẹp" (vì muốn có mô tả tốt hơn) ở cuối hoạt ảnh, trong khi cài đặt alphađể 0tạo chuyển tiếp mượt mà.
(Hãy cho tôi biết bất kỳ lỗi cú pháp nào ... Tôi viết bằng obj-c.)