2013-08-29 3 views
1

Как создать круговой UIView, как Facebook сообщения.Как создать круговой uiview, как Facebook сообщения

Это просто прямоугольник с закругленными углами или прямоугольник с круговым изображением в центре?

Вот вид изображения: enter image description here А вот initWithStyle код для пользовательского класса клеток:

- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier 
{ 
    self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; 
    if (self) { 
     // Initialization code 

     [self.userImage setBackgroundColor:[UIColor orangeColor]]; 
     [self.userImage.layer setCornerRadius:32.0f]; 
    } 
    return self; 
} 

Но я до сих пор получить прямоугольную ImageView.

+0

возможно дубликат [Как сделать круговую UIView] (http://stackoverflow.com/questions/1878595/how-to-make-a-circular-uiview) –

+0

@ pedro.m. Если это дубликат, я соглашаюсь, но он должен появиться в предложениях. Теперь я не понимаю, почему он был помещен как оффтоп, потому что я просил код. Я не просил код, это был концептуальный вопрос. – marciokoko

+0

Я не знаменую для оффтопика, не смотри на меня. : P –

ответ

7

Вам необходимо изменить свойство cornerRadius на уровне вашего вида. Чтобы получить круг, вы должны назначить радиус угла, равный половине высоты/ширины представлений. Вот простой пример:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(100.0f, 100.0f, 120.0f, 120.0f)]; 
[view setBackgroundColor:[UIColor orangeColor]]; 
[view.layer setCornerRadius:60.0f]; 
[self.view addSubview:view]; 
+0

Хорошо, если я пытаюсь изменить прямоугольник IBOutlet UIImageView в ячейке, хотя. Мне нужно переопределить initWithFrame UIImageView или как его изменить? Я попытался добавить это в initWithStyle MyCustomCell, но он не работает: '[self.userImage setBackgroundColor: [UIColor orangeColor]]; [self.userImage.layer setCornerRadius: 60.0f]; ' – marciokoko

+0

63x64пиксели внутри пользовательской 90px высокой ячейки – marciokoko

+0

Это еще не сработало. Хотя я понимаю, почему это имеет смысл ... – marciokoko

0

просто использовать clipToBound как это:

[cell.yourImage.layer setBorderWidth:2.0f]; 
[cell.yourImage.layer setBorderColor:[[UIColor blackColor] CGColor]]; 
[cell.yourImage.layer setShadowRadius:5.0]; 
[cell.yourImage.layer setShadowOpacity:0.5]; 
[cell.yourImage.layer setShadowOffset:CGSizeMake(1.0, 0.0)]; 
[cell.yourImage.layer setShadowColor:[[UIColor blackColor] CGColor]]; 
[cell.yourImage.layer setCornerRadius:10.0]; 
cell.yourImage.clipsToBounds = YES; 

надеюсь, что это помогает

0

Я использую UIView с именем "VIEWNAME", но он может быть использован с UIImage ,

//Define background color 
    self.viewName setBackgroundColor:[UIColor colorWithRed:(84.0/255.0) green:(198.0/255.0) blue:(89.0/255.0) alpha:1]]; 

    //Create circular view 
    self.viewName.layer.cornerRadius = cell.statusColor.frame.size.width/2; 
    self.viewName.clipsToBounds = YES; 
Смежные вопросы