改变基于uilabel的自适应布局的颜色

时间:2016-06-23 11:05:40

标签: ios objective-c xcode swift adaptive-layout

我需要为iPad和iPhone设置不同颜色的标签,我知道我们可以更改不同尺寸类别的字体大小,但是我们可以根据尺寸等级值设置不同的颜色

我知道有可用的代码解决方案,但我想知道尺寸等级是否可以在这方面帮助我

感谢

2 个答案:

答案 0 :(得分:0)

您可以使用两种不同颜色的标签,其中一种仅为iPhone大小类设置为已安装,另一种仅为iPad类设置为已安装。< / p>

[编辑]

好的,我不知道为什么我的答案被低估了。问题没有提到这个标签的用途。如果标签仅用作静态文本,它是一个考虑的解决方案。如果您必须在UIViewController中保留此标签的引用(如Arslan Asim所述)

,这是不合适的。

答案 1 :(得分:0)

您可以使用此代码检查用户正在使用的设备类型。如果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)

Ref