2011-08-24 26 views
8

Tôi đang sử dụng cách tạo bóng tối tiêu chuẩn từ nút lập trình, nhưng tôi muốn đổ bóng để không còn tồn tại nữa sau khi tôi hoàn thành nút. Tôi có thể đặt độ mờ là 0, nhưng bóng sẽ vẫn tồn tại và nếu như vậy nó vẫn sẽ đánh thuế hệ thống. nhờLàm cách nào để xóa bóng trong iPhone

này đưa ra một lỗi

tempButton.superview.layer.shadowOffset = nil; 
    tempButton.superview.layer.shadowRadius = nil; 
    tempButton.superview.layer.shadowOpacity = nil; 
+0

bản sao có thể có của [iOS thêm/xóa bóng khỏi chế độ xem] (http://stackoverflow.com/questions/16751163/ios-add-remove-shadow-from-a-view) – Fattie

Trả lời

26

Tôi thường làm như sau để được an toàn.

[[tempButton layer] setShadowOpacity:0.0]; 
    [[tempButton layer] setShadowRadius:0.0]; 
    [[tempButton layer] setShadowColor:nil]; 

Thạch anh được tối ưu hóa cao và sẽ không lãng phí bất kỳ thời gian hiển thị nếu nó không phải.

+0

+1 nhưng tôi tự hỏi nếu '[[tempButton layer] setShadowColor: nil];' thực sự an toàn. Tài liệu cho biết mặc định là màu đen đục nhưng không xác định cách xử lý nil (và dựa vào hành vi không có giấy tờ là không bao giờ an toàn). Cá nhân tôi sẽ bỏ qua cái đó. – Clafou

+0

'nil' dường như hoạt động tốt, nhưng nếu bạn muốn chơi nó an toàn đi với [UIColor clearColor] .CGColor. Điều đó cũng hoạt động tốt và an toàn. – Joel

1

tôi sẽ chỉ loại bỏ các nút, và thay thế bằng một nút giống hệt nhau (nhưng không shadowed). Hoặc giữ cả hai xung quanh và ẩn/bỏ ẩn một trong số chúng. Đôi khi việc tạo đối tượng giao diện người dùng mới dễ dàng hơn so với một đối tượng hiện có.

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