2012-06-25 15 views
17

चारों ओर बॉर्डर सेट करें मैं एक UIImageView पर सीमा के दो प्रकार लागू करना चाहते हैं:UIImageView

  1. एक UIImageView की layer पर सीमा है।
  2. दूसरा UIImageView के layer के आसपास की सीमा है।

मैं यह कैसे कर सकता हूं?

उत्तर

32

प्रयास करें

#define kBorderWidth 3.0 
#define kCornerRadius 8.0 
CALayer *borderLayer = [CALayer layer]; 
CGRect borderFrame = CGRectMake(0, 0, (imageView.frame.size.width), (imageView.frame.size.height)); 
[borderLayer setBackgroundColor:[[UIColor clearColor] CGColor]]; 
[borderLayer setFrame:borderFrame]; 
[borderLayer setCornerRadius:kCornerRadius]; 
[borderLayer setBorderWidth:kBorderWidth]; 
[borderLayer setBorderColor:[[UIColor redColor] CGColor]]; 
[imageView.layer addSublayer:borderLayer]; 

और भूल नहीं है आयात करने के लिए QuartzCore/QuartzCore.h

यह उदाहरण परत पर एक आवासी आकर्षित करेगा, लेकिन बदल यह फ्रेम है थोड़ा परत के चारों ओर बॉर्डर बनाने के लिए ।

+0

आपके उत्तर के लिए धन्यवाद। मैंने इस कोड को आजमाया लेकिन यह UIImageView के अंदर सीमा बना रहा है लेकिन मैं सीमा को UIImageView के बाहर से सेट करना चाहता हूं। – Girish

+5

बस के लिए फ्रेम बदल भी राशि 'बाहर' आप की तरह: CGRect borderFrame = CGRectMake (-1.0, -1.0, imageView.frame.size.width + 2.0, imageView.frame.size.height + 2.0) ; –

+1

क्लिप को सेट करने के लिए सुनिश्चित करें, यदि आप छवि के बाहर सीमा डालने का प्रयास कर रहे हैं, तो – scott

8

एक और तरीका है

आप आयात करना होगा

#import <QuartzCore/QuartzCore.h> 

फिर अपने UIImageView

imgView.clipsToBounds = YES; 
imgView.layer.cornerRadius = 8.0; 
imgView.layer.borderWidth = 2.0; 
imgView.layer.borderColor = [UIColor greenColor].CGColor; 
+0

यह काम नहीं करता है। – scott

+0

जो सीमा की केवल एक परत बनाता है, ओपी दो के लिए पूछता है। – daisy

+0

सरल और सुरुचिपूर्ण। सही समाधान – mattyU

2

एक अन्य तरीके से एक और परत है कि UIImageView की परत के बाहर एक सा हो जाता है जोड़ने के लिए है के लिए कोड जोड़ने जैसे:

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;