iOS AutoLayout阅读笔记2------>子视图固定比例分割父视图的简单实现

原创 2016年05月31日 12:37:19

这个操蛋的东西,早期在面试的时候有被问到过,当时好像没答出来,现在一看,你妹啊,那么简单大笑

来来来,直接上图

1.首先新建一个工程,然后拉入一个UIView,第一步,做约束啊少年,这个应该问题不大,如下


2.第二步先把咱们这个容器View需要的东西关联下


注:约束也是对象,和控件一样,按住CTRL,直接拽出来就好了



3.假如有需求要求里面有三个控件,分别按2:3:5分割父视图的高度,而且无论容器View(父视图)怎么变,内部都是以2:3:5的比例分割

先添加一个进去 由于操作都是类似,只演示一个

先定三边,按箭头所示选择三边的约束



然后对高度进行约束,还是按住CTRL,拖到其父视图位子,就会出现如下的灰色浮窗,由于咱们现在是对高度进行约束所以选择Equal heights,先这么选,等下再改



选完之后就会出现如下的视图,然后我们点击那个约束,右侧就会弹出对应约束的各种属性,我们根据需求2:3:5的需求,自行修改Mutiplier的值,默认是1(Equal),我们改为需要的0.2


改完之后线还是黄色的啊,也就是需要更新下位子(如果出现红色的线,那么就是约束不完整或者冲突了)

我习惯快捷键command + ALT + =  或者     选择右下角这个按钮,点击Updates Frames即可变成如下成功的约束(蓝色的)



把剩下的两个也添加完,效果如下




4.约束加完了,我们现在开始加一丢丢代码,就可以做到了

<span style="font-size:14px;">- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event
{
    CGFloat length = arc4random() % 200;
    [UIView animateWithDuration:0.8 animations:^{
       
        self.bottomContraint.constant = length;
        self.rightContraint.constant = length;
        [self.animationView layoutIfNeeded];
    }];
}</span>

OK,做完了,现在点击屏幕触发这个方法,我们的父视图会各种变大变小,但是内部永远是按着2:3:5的比例进行分割的


效果如下



安静安静安静 Over~~~



版权声明:本文为博主原创文章,未经博主允许不得转载。转载请Email我.......

UISplitViewController - 分割视图控制器

UISplitViewController - 分割视图控制器概述UISplitViewController 是一个容器vc, 展示一个 master-detail(主-详(从))界面。 主视图改...
  • go_fishing
  • go_fishing
  • 2016年03月24日 09:19
  • 3036

UISplitViewController 分割视图控制器,自定义左右视图控制器视图大小

//分割试图控制器 左侧默认320宽度 右侧self.view.frame.size-320 @property (strong,nonatomic) UISplitViewControl...
  • GOD_CHONG
  • GOD_CHONG
  • 2014年12月17日 17:33
  • 2203

Masonry自动布局详解五:比例(multipliedBy)

Masonry自动布局详解五:比例(multipliedBy) 说到iOS自动布局,有很多的解决办法。有的人使用xib/storyboard自动布局,也有人使用frame来适配。对于前者,笔者并不喜欢...
  • woaifen3344
  • woaifen3344
  • 2015年11月30日 16:30
  • 23273

iPad 编程 分割视图

#import "AppDelegate.h" #import "LeftViewController.h" #import "RightViewController.h" @implementat...
  • u010622887
  • u010622887
  • 2014年11月25日 13:14
  • 369

iOS表视图分割线的总结

1.在自定义单元格的底部或者顶部画一条分割线,这种方法简单粗暴,而且可以在任意位置绘制,相对也比较灵活 let seperateLine = UILabel() seperateLine.back...
  • chokshen
  • chokshen
  • 2017年08月17日 13:44
  • 204

xib 使用autolayout 设置子控件尺寸与父控件尺寸成比例

橙色是父视图,假设约束如上图。 绿色是子视图。重点宽度比例设置:   1. control-drag(使用鼠标拖动) 选择 equal widths 2. 选中上面那个约束 ...
  • lixueman
  • lixueman
  • 2017年02月17日 17:27
  • 576

xib子View和父View按比例设置

选择两个等宽高,再去 约束里面就可以设置乘数因子。
  • procedure_1988
  • procedure_1988
  • 2016年11月10日 11:47
  • 330

iOS AutoLayout阅读笔记2------>子视图固定比例分割父视图的简单实现

这个操蛋的东西,早期在面试的时候有被问到过,当时好像没答出来,现在一看,你妹啊,那么简单 来来来,直接上图 1.首先新建一个工程,然后拉入一个UIView,第一步,做约束啊少年,这个应该问题不大,如下...
  • Deft_MKJing
  • Deft_MKJing
  • 2016年05月31日 12:37
  • 1419

ios 自定义导航栏和分割线

自定义导航栏: // CustomNaviBarView.h #import @interface CustomNaviBarView : UIView { @private /** ...
  • qilixiang012
  • qilixiang012
  • 2014年11月20日 13:17
  • 2535

iOS开发UIView的属性,父视图和子视图的层级操作,子视图的自适应模式,外加一个定时器

转载自:http://blog.csdn.net/weisubao/article/details/39582249 (1)UIView视图frame的设置,四个参数,前2个确定位置,后2个...
  • yuxikuo_1
  • yuxikuo_1
  • 2014年12月24日 16:01
  • 2565
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iOS AutoLayout阅读笔记2------>子视图固定比例分割父视图的简单实现
举报原因:
原因补充:

(最多只允许输入30个字)