uiview

2014-04-18 9 views
27

के दाएं और नीचे एक छाया ड्रॉप करें मुझे यूवीव्यू के दाएं और नीचे एक छाया छोड़नी है। मैं इसे इंटरफ़ेस बिल्डर में कर रहा हूं। लेकिन मुझे लगता है कि छाया इसके ऊपर गिरा दी गई है। अलग-अलग आकारों का उपयोग करें। लेकिन इसे प्राप्त नहीं करें।uiview

layer.masksToBound=No 
layer.shadowOpacity=0.15 
layer.shadowRadius=2 
layer.shadowOffSet={10,-10} //Values being set in Interfacebuilder. 

फिर भी यह शीर्ष पर छाया गिरता है। मुझे नीचे देखने के लिए क्या करना चाहिए।

+0

क्रम @ walle84 के लिए corrent जवाब है । – Joker

उत्तर

90

निम्नलिखित कोड का प्रयास करें, तो यह आपको

myView.layer.shadowColor = [UIColor purpleColor].CGColor; 
    myView.layer.shadowOffset = CGSizeMake(5, 5); 
    myView.layer.shadowOpacity = 1; 
    myView.layer.shadowRadius = 1.0; 
    myView.layer.maskToBounds = NO; 

मदद कर सकता है मैं इस कोड का परीक्षण और यह काम कर रहा है और उत्पादन है:

enter image description here

+2

क्या आप मुझे बता सकते हैं कि दृश्य के केवल छाया में छाया कैसे जोड़ें। –

+4

'myView.layer.shadowOffset = CGSizeMake (5, 5) के बजाय; 'my'iew.layer.shadowOffset = CGSizeMake (0, 5);' –

+0

inimageview मैं इस छाया को नहीं जोड़ सकता। जैसा कि आप लिखते हैं मैंने कोड किया है। –

0

मुझे लगता है कि आपकी छाया ऑफ़सेट गलत है। यह {10, 10} होना चाहिए की तरह:

[layer setShadowOffset:CGSizeMake(10 , 10) ]; 
+0

मैंने इसे भी आजमाया लेकिन यह केवल – Honey

+0

शीर्ष पर गिरता है छाया बनाने के लिए कोड का उपयोग करें। यह जांचें [लिंक] (http://nachbaur.com/blog/fun-shadow-effects-using-custom-calayer-shadowpaths) –

+0

@ गौरवसिंह मैंने टेबलव्यू सेल के लिए छाया खींचने के लिए इसका इस्तेमाल किया लेकिन स्क्रॉल करने के बाद यह शीर्ष पर जाता है । – user3306145

6

हाय मैंने कोड के नीचे उपयोग किया है, यह आपको इच्छित छाया प्रदान करेगा। के रूप में यह sublayers दृश्य के सीमा से आगे विस्तार की कतरन को निष्क्रिय

UIBezierPath *shadowPath = [UIBezierPath bezierPathWithRect:_viewShadow.bounds]; 
_viewShadow.layer.masksToBounds = NO; 
_viewShadow.layer.shadowColor = [UIColor blackColor].CGColor; 
_viewShadow.layer.shadowOffset = CGSizeMake(10.0f, 5.0f); /*Change value of X n Y as per your need of shadow to appear to like right bottom or left bottom or so on*/ 
_viewShadow.layer.shadowOpacity = 0.5f; 
_viewShadow.layer.shadowPath = shadowPath.CGPath; 

इसके अलावा masksToBounds इम्प है। यदि आप इसे हाँ रखते हैं तो आपको छाया दिखाई नहीं देगी क्योंकि यह सब्लेयर क्लिप करता है जहां कहीं भी यह लंबाई सीमा तक नहीं पहुंचता है।

+1

'मास्क टॉबाउंड' पर आपके नोट के लिए धन्यवाद, मैं इसे याद कर रहा था। –

1

स्विफ्ट 3, CGSizeMake अब मौजूद नहीं है। इसे CGSize(width: 20, height: 10) में बदल दिया गया है। तो shadowOffsetमें इस तरह सेट किया जा सकता स्विफ्ट 3:

myView.layer.shadowOffset = CGSize(width: 20, height: 10) 
0

मुझे पता चला है कि इन मूल्यों को एक अच्छा परिणाम दे:

myView.layer.shadowColor = UIColor.black.cgColor 
myView.layer.shadowOpacity = 0.25 
myView.layer.shadowRadius = 3 
myView.layer.shadowOffset = CGSize(width: 1, height: 1) // shadow on the bottom right 

enter image description here

 संबंधित मुद्दे