setFrame - мне нужно кое-что прояснить - PullRequest
1 голос
/ 09 февраля 2012

У меня есть код для программного создания кнопок, и здесь он

UIImage *aroundImage = [UIImage imageNamed:@"locBar.png"];
    UIImage *aroundImageDown = [UIImage imageNamed:@"locBarColor.png"];
    UIButton *aroundButton = [UIButton buttonWithType:UIButtonTypeCustom];
    [aroundButton setFrame:CGRectMake(240, 369, 80, 48)];  
    [aroundButton setImage:aroundImage forState:UIControlStateNormal];
    [aroundButton setImage:aroundImageDown forState:UIControlStateHighlighted];
    [aroundButton setImage:aroundImageDown forState:UIControlStateSelected];
    [aroundButton addTarget:self action:@selector(aroundMe) forControlEvents:UIControlEventTouchUpInside];    
    [self.view addSubview:aroundButton]; 

, поэтому теперь я установил рамку для кнопки, но что, если это приложение будет отображаться на iPhone4 в 640x960Тогда у меня есть разные изображения "locBar@2x.png и locBarColor@2x.png", и они должны быть с другим CGRectMake, или они должны?У меня вопрос, как мне настроить кнопку для обоих разрешений и сделать это программно.

Ответы [ 3 ]

2 голосов
/ 09 февраля 2012

это автоматически :) ios загрузит версию @ 2x, если она доступна, и если устройство имеет масштаб x2.Кадр в точке, а не в пикселях.

Смотрите здесь в точках по сравнению с пикселями

1 голос
/ 09 февраля 2012

Если вы включаете версию изображения с высоким разрешением с тем же именем, но с расширением @ 2x перед расширением, iOS автоматически выберет правильное разрешение в соответствии с разрешением экрана, если вы используете [UIImage imageNamed:] или установите изображение в IB.

0 голосов
/ 09 февраля 2012

Вы должны поставить условие, а затем в соответствии с размером экрана сделать кнопку рамки и дать им изображения.

...