2013-12-19 6 views
1

Я сделал следующий код, чтобы получить ярлык в нижней части экрана, в зависимости от того, является ли устройство iphone5 или iphone4/4s.Поместите ярлык внизу экрана

Мне нравится знать, что есть другой способ ... например, с авто-макетом?

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    CGRect frame; 
    if ([UIScreen mainScreen].bounds.size.height == 568) { 
     frame = CGRectMake(140, 500, 320, 100); 
    } else { 
     frame = CGRectMake(140, 410, 320, 100); 
    } 

    UILabel *iconAdLabel = [[UILabel alloc]init]; 
    iconAdLabel.frame = frame; 
    iconAdLabel.font = [[UIFont preferredFontForTextStyle:UIFontTextStyleBody] fontWithSize:11.0]; 
    iconAdLabel.text = @"SOME NICE TEXT HERE"; 

    [self.view addSubview:iconAdLabel]; 

} 
+0

Да, есть еще один способ с autolayout – rocky

ответ

0

Да, действительно. Вы определенно НЕ хотите жестко кодировать значения позиции. Используйте конструктор интерфейса для добавления ограничений на метку. Документация Apple на Auto-layout неплоха и может дать вам идеи.

0

Вместо жесткое кодирования значений или с использованием ограничений и Interface Builder, вы можете использовать простое математическое выражение так:

CGFloat const labelHeight = 100; 
CGRect frame = CGRectMake(0, CGRectGetHeight([[UIScreen mainScreen] bounds]) - labelHeight, 320, labelHeight); 
3
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    UILabel *iconAdLabel = [[UILabel alloc]init]; 
    iconAdLabel.frame = CGRectMake(0,self.view.frame.size.height-100,320,100); 
    iconAdLabel.autoresizingMask = UIViewAutoresizingFlexibleTopMargin; 

    [self.view addSubview:iconAdLabel]; 

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