2011-02-03 24 views
9

Tôi đang cố gắng tạo ra một bóng xung quanh một đối tượng UIView đơn giản được thêm vào đầu của một cái nhìn của UIViewController. cách tiến thẳng nhất để làm điều này là gì?UIView với bóng

Trả lời

28

Đầu tiên, hãy chắc chắn để nhập khẩu các thư viện Quartz Core:

#import <QuartzCore/QuartzCore.h> 

Tiếp theo, thêm những dòng sau để thiết lập thuộc tính của bóng:

someView.layer.shadowColor = [[UIColor blackColor] CGColor]; 
someView.layer.shadowOffset = CGSizeMake(10.0f,10.0f); 
someView.layer.shadowOpacity = .5f; 
someView.layer.shadowRadius = 10.0f; 

Hãy ghi nhớ rằng nếu bạn có thuộc tính clipsToBounds của view được đặt thành YES, bóng sẽ không xuất hiện.

+0

Bật. Cảm ơn! Tôi đã thử điều đó nhưng tôi không thể tìm ra lý do tại sao nó không bao giờ làm việc và thực sự vấn đề là thuộc tính clipsToBounds được đặt thành YES. Một câu hỏi nữa là nếu tôi muốn cái bóng ở trên tất cả 4 mặt của Chế độ xem thì sao? Tôi nghĩ rằng điều này chỉ cho phép bạn có 2 mặt tại thời điểm bằng cách thay đổi shadowOffset ... Dù sao, Cảm ơn một lần nữa! – zumzum

+1

Nếu cả giá trị offset và bán kính là 10, bóng được ẩn đằng sau someView. Nếu bạn muốn bóng tối trên tất cả 4 mặt của someView, thay đổi bán kính để lớn hơn độ lệch (hoặc thay đổi độ lệch thành 0 để có một bóng thậm chí xung quanh someView). – FuePi

3

Tôi mất một thời gian để tìm hiểu. Mã hoạt động hoàn hảo nhưng bạn nên nhập thạch anh

#import <QuartzCore/QuartzCore.h> 
Các vấn đề liên quan