iPad

iPad开发前的“准备”

2016-11-12  本文已影响219人  大王叫我来巡山_Cong
iPad.jpg

简介:

屏幕尺寸

横竖屏

这些都可以知道当前的屏幕状态的,但是苹果之后给废弃掉了
方法- 在iOS8 之后被废弃掉了
方法二 在iOS6 之后被废弃掉了
方法三 在iOS8 之后被废弃掉了

iPad横竖屏下[UIScreenmainScreen].bounds的值.png

场景二:屏幕旋转后,比如高度变成之前的一半。效果图如下

旋转.gif

主要代码是这样的:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
    
    if (UIInterfaceOrientationIsLandscape(toInterfaceOrientation)) { // 横屏
        
        [_label mas_updateConstraints:^(MASConstraintMaker *make) {
            self.title = @"屏幕旋转 横屏";
            make.top.equalTo(self.view).offset(129);
            make.left.equalTo(self.view).offset(30);
            make.right.equalTo(self.view).offset(-30);
            make.height.mas_equalTo(200);
        }];
    } else {
        self.title = @"屏幕旋转 竖屏";
        [_label mas_updateConstraints:^(MASConstraintMaker *make) {
            make.top.equalTo(self.view).offset(129);
            make.left.equalTo(self.view).offset(30);
            make.right.equalTo(self.view).offset(-30);
            make.height.mas_equalTo(400);
        }];
    }
}

插个题外话:为什么在Masonry中使用self 不会造成循环引用?
Masonry的源码:

- (NSArray *)mas_makeConstraints:(void(^)(MASConstraintMaker *))block {
    self.translatesAutoresizingMaskIntoConstraints = NO;
    MASConstraintMaker *constraintMaker = [[MASConstraintMaker alloc] initWithView:self];
    block(constraintMaker);
    return [constraintMaker install];
}

它仅仅是block(constrainMaker)。而不是self.block(constrainMaker)
并不是 block 就一定会造成循环引用,是不是循环引用要看是不是相互持有强引用。
block 里用到了self,那 block 会保持一个 self 的引用,
但是 self 并没有直接或者间接持有 block,所以不会造成循环引用。

分屏

有个哥们的文章写的不错,给个传送门看看吧。 点我传送

总结快速开发iPad项目的几点因素

你觉得这篇文章对你有帮助就帮忙点个喜欢吧!!!

上一篇下一篇

猜你喜欢

热点阅读