作家
登录

iOS屏幕适配实践浅谈

作者: 来源: 2017-11-13 09:23:21 阅读 我要评论

iOS屏幕适配实践浅谈

一段典范的 AutoLayout 代码如下所示:

  1. _topViewTopPositionConstraint = [NSLayoutConstraint 
  2.                                     constraintWithItem:_topInfoView 
  3.                                     attribute:NSLayoutAttributeTop 
  4.                                     relatedBy:NSLayoutRelationEqual 
  5.                                     toItem:self.view 
  6.                                     attribute:NSLayoutAttributeTop 
  7.                                     multiplier:1.0 
  8.                                     constant:self.navigationController.navigationBar.frame.size.height + self.navigationController.navigationBar.frame.origin.y]; 
  9.     
  10.    [self.view addConstraint:topViewLeftPositionConstraint]; 
  11.     
  12.    (这里省略上述类似构造*4) 

膳绫擎省略了很多代码,实际上一页都放不下。它干了什么呢,只是将一个元素紧贴屏幕上边沿放置。项目中我们会应用三方 AutoLayout 的封装:PureLayout ,简化代码,也有其它实用功能。

AutoLayout 比较合适:

  • 根本的对齐(高低阁下对齐,居中对齐等)
  • 固定的构造,固定的间距,动态性不高的页面
  • 简单且数量较少的 UI 元素

别的有一点,AutoLayout 对机能是有损耗的,所以对机能有请求的场景,比如列表中的 cell,我们会用代码计算 frame,进步滑动帧率。

所以在实际工程中,须要来选择构造方法。

下面是 App 中首页消息 Feeds 的构造代码片段:

  1. - (void)layoutSubviews { 
  2.      
  3.     [super layoutSubviews]; 
  4.      
  5.     CGFloat cellWidth = CGRectGetWidth(self.bounds); 
  6.     CGFloat currentY = 0.f; 
  7.      
  8.     // 0.content 
  9.     CGFloat cellHeight = CGRectGetHeight(self.bounds); 
  10.     CGFloat contentHeigth = cellHeight - kCellPaddingHeight; 
  11.     _mainContentView.frame = CGRectMake(0, 0, cellWidth, contentHeigth); 
  12.      
  13.     // 1. topic 
  14.     CGFloat topicLabelWidth = [_topicLabel.text boundingRectWithSize:CGSizeMake(CGFLOAT_MAX, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:_topicLabel.font} context:nil].size

      推荐阅读

      电商如何在“双十一”实现流量销量双绝杀

    Tech Neo技巧沙龙 | 11月25号,九州云/ZStack与您一路商量云时代收集界线治理实践 对于电商而言,平日网站流量是靠推广得来的,常见的可以经由过程优化关键词,做外部链接,发文┞仿宣传,>>>详细阅读


    本文标题:iOS屏幕适配实践浅谈

    地址:http://www.17bianji.com/lsqh/38739.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)