ठीक है, पहले से ही एक स्वीकृत उत्तर है, लेकिन मुझे लगता है कि इसे करने का एक बेहतर तरीका है, आपको बस एक नई परत को अपने दृष्टिकोण से थोड़ा बड़ा करना होगा और इसे दृश्य की परत की सीमा तक न करें (जो वास्तव में है डिफ़ॉल्ट व्यवहार)। यहाँ नमूना कोड है:
CALayer * externalBorder = [CALayer layer];
externalBorder.frame = CGRectMake(-1, -1, myView.frame.size.width+2, myView.frame.size.height+2);
externalBorder.borderColor = [UIColor blackColor].CGColor;
externalBorder.borderWidth = 1.0;
[myView.layer addSublayer:externalBorder];
myView.layer.masksToBounds = NO;
बेशक यह है कि यदि आप चाहते हैं कि आपकी सीमा 1 एकता बड़ी हो, यदि आप अधिक चाहते हैं तो आप borderWidth
और परत के फ्रेम को तदनुसार अनुकूलित कर सकते हैं । यह एक दूसरे दृश्य का उपयोग करने से बेहतर है क्योंकि एक CALayer
की तुलना में हल्का है UIView
और आप के फ्रेम को संशोधित नहीं करते हैं myView
, जो उदाहरण के लिए अच्छा है यदि myView
एक हैUIImageView
NB: मेरे लिए परिणाम सिम्युलेटर पर बिल्कुल सही नहीं था (परत बिल्कुल सही स्थिति में नहीं थी इसलिए परत कभी-कभी एक तरफ मोटी होती थी) लेकिन वास्तव में वास्तविक डिवाइस के लिए पूछा गया था।
संपादित करें
वास्तव में मैं एनबी में जिस समस्या के बारे में बात करता हूं वह सिर्फ इसलिए थी क्योंकि मैंने सिम्युलेटर की स्क्रीन को कम कर दिया था, सामान्य आकार पर कोई समस्या नहीं है
आशा करता हूँ की ये काम करेगा