2012-03-20 1 views
1

Я хочу, чтобы достичь чего-то вроде этого внутри UIView:IOS - Создание пользовательских UILabel и добавить их в UIView

enter image description here

Я создал пользовательский UILabel с помощью метода пользовательского INIT:

@implementation TagLabel 
- (id)init { 
    self = [super initWithFrame:CGRectMake(0, 0, 100, 40)]; 
    if (self) { 
     self.layer.borderColor = [UIColor whiteColor].CGColor; 
     self.layer.borderWidth = 4.0; 
     self.layer.cornerRadius = 4; 
     self.backgroundColor = [UIColor greenColor]; 
     self.textColor = [UIColor whiteColor]; 
     self.textAlignment = UITextAlignmentCenter; 
    } 
    return self; 
} 
@end 

и создать и добавить каждую метку представления следующим образом:

for (NSDictionary *tag in [self.voicenote objectForKey:@"Tag"]) { 
     TagLabel *tagLabel = [[TagLabel alloc] init]; 
     tagLabel.text = [tag objectForKey:@"tag"]; 
     [self.tagsView addSubview:tagLabel]; 
    } 

Y и все, что я получаю, это пустой UIView, я что-то упускаю? Будет ли лучший способ достичь этого?

EDIT: одна проблема решена, изменен код UILabel, чтобы установить цвет фона непосредственно на фон, и теперь они показывают, теперь как я могу заставить их быть одним рядом с другим и не перекрываться?

ответ

2

В вашем цикл, вам нужно сделать пользовательские рамки для ваших этикеток и расположить их так, как вы хотите. что-то вроде этого, может быть:

CGRect frame = label.frame; 
frame.size.height = masterFrame.height; 
frame.origin.y = masterFrame.origin.y + masterFrame.size.height + 40; 
label.frame = frame; 

Это длинный путь, чтобы сделать это. Вы также можете просто инициализировать рамку с помощью [CGRect initWithFrame ...]

0

Они добавляются к одной и тем же позициям родительского вида

 Смежные вопросы

  • Нет связанных вопросов^_^