iOS-size class

iOS-size class



苹果对它的设备的屏幕进行了分类,正常的宽(regular),正常的高(regular),压缩的高(compact),压缩的宽(compact),任意宽,任意高。两两组合就可以包括了所有的设备的横屏和竖屏使用情况。公有九种。


宽高类型枚举;

typedef NS_ENUM(NSInteger, UIUserInterfaceSizeClass) {
    UIUserInterfaceSizeClassUnspecified = 0,
    UIUserInterfaceSizeClassCompact     = 1,
    UIUserInterfaceSizeClassRegular     = 2,
} NS_ENUM_AVAILABLE_IOS(8_0);

通过UIViewController可以得到当前设备的宽高类型:(屏幕使用类型发生变化都会调用改方法)

-(void)willTransitionToTraitCollection:(UITraitCollection *)newCollection withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator{
    
    NSLog(@"屏幕宽高类型%@",newCollection);
    
}

输出结果:

2015-04-06 16:16:38.872 ViewController[2939:129171] 屏幕宽高类型<UITraitCollection: 0x7fe330482e00; _UITraitNameUserInterfaceIdiom = Phone, _UITraitNameDisplayScale = 2.000000, _UITraitNameHorizontalSizeClass = Compact, _UITraitNameVerticalSizeClass = Compact, _UITraitNameTouchLevel = 0, _UITraitNameInteractionModel = 1>


通过切换不同的模拟器得到如下的总结:

  • iPhone4S,iPhone5/5s,iPhone6
    • 竖屏:(w:Compact h:Regular)
    • 横屏:(w:Compact h:Compact)
  • iPhone6 Plus
    • 竖屏:(w:Compact h:Regular)
    • 横屏:(w:Regular h:Compact)
  • iPad
    • 竖屏:(w:Regular h:Regular)
    • 横屏:(w:Regular h:Regular)
我们通过storyBoard设计UI的时候我们可以选择任意的屏幕模式,选择之后添加不同的constraint,再切换到另外一种屏幕模式从新设计UI在改模式下的布局,不同屏幕模式下的UI设计的constraint互不影响。从而避免了我们在设计UI适配时要创建对应的xib文件。



小结:

size class的UI设计就是:同一UI界面,不同屏幕模式下的UI设计互不干扰。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值