изменить цвет адаптивного макета на основе uilabel

Мне нужен разный цвет этикетки для iPad и iPhone, я знаю, что мы можем изменить размер шрифта для разных классов размера, но есть ли способ установить другой цвет в зависимости от значения класса размера

Я знаю, что есть доступное кодовое решение, но мне было интересно, может ли класс размера помочь мне в этом отношении.

Благодарность


person Arslan Asim    schedule 23.06.2016    source источник
comment
Программно — это ваш путь вперед.   -  person Dominic    schedule 23.06.2016
comment
@arslen: просто проверьте версию устройства и в соответствии с установленным цветом.   -  person Wolverine    schedule 23.06.2016


Ответы (2)


У вас может быть две метки разных цветов, и одна из них может быть установлена ​​как Установлено только для классов размеров iPhone, а другая — как Установлено только для классов iPad.

[РЕДАКТИРОВАТЬ]

Хорошо, я понятия не имею, почему за мой ответ проголосовали. В вопросе ничего не упоминалось о том, для чего используется этот ярлык. Это решение, которое следует учитывать, если метка используется только как статический текст. Неуместно, если вам нужно сохранить ссылку на эту метку в UIViewController (как упоминал Арслан Асим)

person tahavath    schedule 23.06.2016
comment
в этом случае будет проблема с выходом этой метки, вам нужно будет установить 2 переменные, чтобы отслеживать их, а не хорошее решение! - person Arslan Asim; 23.06.2016
comment
В вопросе ничего не упоминалось о том, для чего используется этот ярлык. Почему вы голосуете против меня? Это решение, которое следует учитывать, если метка используется только как статический текст. - person tahavath; 23.06.2016
comment
голосование против было от другого пользователя, я объяснил, в чем может быть проблема в вашем решении, спасибо за ваше предложение - person Arslan Asim; 23.06.2016

Вы можете проверить, какой тип устройства использует пользователь, используя этот фрагмент кода. Если IS_IPAD равно true, отобразите цвет iPad. Надеюсь это поможет.

enum UIUserInterfaceIdiom : Int
{
    case Unspecified
    case Phone
    case Pad
}

struct ScreenSize
{
    static let SCREEN_WIDTH         = UIScreen.mainScreen().bounds.size.width
    static let SCREEN_HEIGHT        = UIScreen.mainScreen().bounds.size.height
    static let SCREEN_MAX_LENGTH    = max(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
    static let SCREEN_MIN_LENGTH    = min(ScreenSize.SCREEN_WIDTH, ScreenSize.SCREEN_HEIGHT)
}

struct DeviceType
{
    static let IS_IPHONE_4_OR_LESS  = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH < 568.0
    static let IS_IPHONE_5          = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 568.0
    static let IS_IPHONE_6          = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 667.0
    static let IS_IPHONE_6P         = UIDevice.currentDevice().userInterfaceIdiom == .Phone && ScreenSize.SCREEN_MAX_LENGTH == 736.0
    static let IS_IPAD              = UIDevice.currentDevice().userInterfaceIdiom == .Pad && ScreenSize.SCREEN_MAX_LENGTH == 1024.0
}

Проверка выполняется с помощью этой строки кода:

if(DeviceType.IS_IPAD)

Ссылка

person onemillion    schedule 23.06.2016
comment
спасибо @onemillion за ваш блестящий фрагмент кода, но я нашел способ сделать это через Stroyboard - person Arslan Asim; 23.06.2016
comment
Нет проблем, извините за недоразумение. В моем приложении у меня есть отдельные раскадровки для iPad и приложения для iPhone, это может быть решением для этого. - person onemillion; 23.06.2016
comment
Ваш код взят из stackoverflow.com/a/29622324/1187415? Пожалуйста, добавляйте ссылку на оригинал, если копируете код с другого ресурса, иначе это считается плагиатом. - person Martin R; 23.06.2016
comment
Да, я добавил ссылку, я не знал, что вы должны были это сделать. Я новичок в переполнении стека. Приемлемо ли то, что у меня есть сейчас? - person onemillion; 23.06.2016