I just want to change the shape of view from Square to Round. As i try with cornerRadious, But it just round the corner only. As I want to make whole view as a round shape.
            Asked
            
        
        
            Active
            
        
            Viewed 2,383 times
        
    3
            
            
        - 
                    What do you mean by that if not the corners? – May 10 '13 at 05:27
 - 
                    possible duplicate [How to make a circular UIView](http://stackoverflow.com/questions/1878595/how-to-make-a-circular-uiview) – DD_ May 10 '13 at 05:28
 - 
                    As, if we get any view or imageview than, buy default its in Square shape. So how can we make it as round shape without corner radious ? As if size of view is very high then its not actuly round shape with corner radious. So I just want to redraw the view and make it round shape. – Nirmalsinh Rathod May 10 '13 at 05:34
 
3 Answers
6
            A UIView is always rectangular. However, you can make it look round (or any shape at all, actually) with a mask. To do so, make a UIImage which is a black circle (in a transparent background). Now take the CGImage of that UIImage and make it the contents of a CALayer. Finally, set that CALayer as the mask of the layer of your view.
Let us suppose that your view is 100 x 100. Then (not tested, but should be pretty much right):
UIGraphicsBeginImageContextWithOptions(CGSizeMake(100,100), NO, 0);
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(c, [UIColor blackColor].CGColor);
CGContextFillEllipseInRect(c, CGRectMake(0,0,100,100));
UIImage* maskim = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
CALayer* mask = [CALayer new];
mask.frame = CGRectMake(0,0,100,100);
mask.contents = (id)maskim.CGImage;
view.layer.mask = mask;
        matt
        
- 515,959
 - 87
 - 875
 - 1,141
 
- 
                    Is there a way to do this (i.e., mask a UIView so it appears circular) in Storyboard, or does it have to be done programmatically? – Crashalot Dec 11 '15 at 02:43
 
2
            
            
        You can make rounded border with width of border of any control in this way:-
CALayer * l1 = [viewPopup layer];
[l1 setMasksToBounds:YES];
[l1 setCornerRadius:5.0];
// You can even add a border
[l1 setBorderWidth:5.0];
[l1 setBorderColor:[[UIColor darkGrayColor] CGColor]];
Just replace viewPopup with your control. 
Note:- Don't forget to import <QuartzCore/QuartzCore.h>
        Piyush Dubey
        
- 2,416
 - 1
 - 24
 - 39
 
1
            
            
        Try this code :-
[roundView.layer setCornerRadius:50.0f];
[roundView.layer setBorderColor:[UIColor lightGrayColor].CGColor];
[roundView.layer setBorderWidth:1.5f];
[roundView.layer setShadowColor:[UIColor blackColor].CGColor];
[roundView.layer setShadowOpacity:0.8];
[roundView.layer setShadowRadius:3.0];
[roundView.layer setShadowOffset:CGSizeMake(2.0, 2.0)];
Note:- roundView is your view that you want to round.
I hope it helps you. Thanks
        chandan
        
- 2,453
 - 23
 - 31