Цель-C: Как определить CELL_CONTENT_WIDTH для iPhone и iPad? - PullRequest
0 голосов
/ 29 февраля 2012

Я бы хотел установить условие для этих значений:

#define FONT_SIZE 14.0f
#define CELL_CONTENT_WIDTH 320.0f
#define CELL_CONTENT_MARGIN 35.0f

Можно ли изменить значения в соответствии с устройством?

Ответы [ 4 ]

3 голосов
/ 29 февраля 2012
#define IS_IPAD (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)

if(IS_IPAD)
       // use ipad widht and height
else
     // use iphone widht and height
1 голос
/ 29 февраля 2012

Это можно использовать для изменения разрешения в соответствии с типом устройства (iPhone / iPad):

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
    // iPad code
    screenHeight = 1024;
    screenWidth = 768.;

} else if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    // iPhone or iPod Touch code
    screenWidth = 320.;
    screenHeight = 480.;
}
1 голос
/ 29 февраля 2012

Если у вас есть универсальное приложение, вы различаете iPad и iPhone во время сборки.Таким образом, вы не можете сделать #define s с разными значениями для двух устройств.

Однако вы можете определить тип устройства во время выполнения, используя UI_USER_INTERFACE_IDIOM():

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) {
    // iPhone
    // ...
} else {
    // iPad
    // ...
}

320также ширина экрана iPhone.Поэтому, если вы хотите, чтобы ваши ячейки имели ширину экрана устройства, вы можете определить это следующим образом:

CGFloat width = [UIScreen mainScreen].bounds.size.width;
1 голос
/ 29 февраля 2012

Если у вас разные цели, попробуйте что-то вроде

#ifdef iPHONE_APP 
    #define ...
#elif iPAD_APP
    #define ...
#else
    #define ...
#endif

Затем определите X_APP в макросе препроцессора каждой цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...