wreckingcode wreckingcode - 6 months ago 33
iOS Question

Circular UIImageView in UITableView without performance hit?

I have a

UIImageView
on each of my
UITableView
cells, that display a remote image (using
SDWebImage
). I've done some
QuartzCore
layer styling to the image view, as such:

UIImageView *itemImageView = (UIImageView *)[cell viewWithTag:100];
itemImageView.layer.borderWidth = 1.0f;
itemImageView.layer.borderColor = [UIColor concreteColor].CGColor;
itemImageView.layer.masksToBounds = NO;
itemImageView.clipsToBounds = YES;


So now I have a 50x50 square with a faint grey border, but I'd like to make it circular instead of squared. The app
Hemoglobe
uses circular images in table views, and that's the effect I'd like to achieve. However, I don't want to use
cornerRadius
, as that degrades my scrolling FPS.

Here's
Hemoglobe
showing circular
UIImageViews
:

enter image description here

Is there any way to get this effect? Thanks.

Answer

Simply set the cornerRadius to half of the width or height (assuming your object's view is square).

For example, if your object's view's width and height are both 50:

itemImageView.layer.cornerRadius = 25;

Update - As user atulkhatri points out, it won't work if you don't add:

itemImageView.layer.masksToBounds = YES;