2016-08-29 3 views
0

Я сделал вид пользовательского поп, который выглядит как этотКак я могу поместить UILabel ниже в UIImageView, так что он всегда равномерно размещены

Я хочу, чтобы поместить метку имя пользователя ниже изображение пользователя, которое округлено UIImageView в данном изображении

Я хочу, чтобы имя пользователя размещалось равномерно, независимо от размера текста. Как я хочу, чтобы имя появляется как этот

enter image description here

+1

показать код, который вы должны попробовать. –

ответ

1
  1. Выровнять содержимое этикетки в центре.

  2. Установите ограничение с метки на изображение. Горизонтальная центральная метка для изображения.

Align label horizontally to imageview

+0

Я делаю это программно, не используя раскадровку, я установил центр x ярлыка так же, как изображение пользователя, но не смог принять решение о кадре –

+0

установить ширину метки, равную 'self.view', и высоту, что вы хотите , Также центрируйте текст метки в центр. Следовательно, ось x = 0 будет работать здесь. –

+0

вы можете установить координату x метки как: 'code'imageview.x - ((label.width - image.width)/2)' code' –

0

Как вы не используете раскадровку, ниже код поможет вам в установке рамки этикетки: -

UILabel *labelName;//This will be your label instance 
CGFloat yAxis = 50;//This will be your image view's y axis + image view's height 
[labelName setFrame:CGRectMake(0, yAxis, self.view.frame.size.width, self.view.frame.size.height)]; 
//Set the color/Font other properties of label as desired 

[labelName setTextAlignment:NSTextAlignmentCenter]; 
0

Установка ограничений является эффективным решением.

Либо вы можете следовать методу раскадровки, как предложено г-ном Б.Б., или подходом к нему с помощью кода. Я предлагаю вам использовать масонство для установки ограничений, если вы хотите продолжить код.

И вы можете просто сделать:

[your-label mas_makeConstraints:^(MASConstraintMaker *make) { 
    make.top.equalTo(imgView.mas_top); //with is an optional semantic filler 
    make.mas_centerX.equalTo(imgView.mas_centerX); 
}];