问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

ios ui手写代码是什么语言

发布网友 发布时间:2022-04-26 15:23

我来回答

1个回答

热心网友 时间:2023-10-11 16:27

 原理:IOS6.0 之后,苹果优化了UI界面的布局方式,提出了自动布局的概念,和之前的autoresizing相比功能更强大。子视图基于父视图的自动布局显示。都是父视图去添加对子视图的约束。
  在这里主要说的是通过代码对自动布局视图的实现。
  代码中一般用到的有两个添加约束的方式:
  1.- (void)addConstraint:(NSLayoutConstraint *)constraint NS_AVAILABLE_IOS(6_0);
  2.- (void)addConstraints:(NSArray *)constraints NS_AVAILABLE_IOS(6_0);
  <</span>
  在使用自动布局之前要对子视图的布局方式进行调整,用到这个UIView的属性。
  - (BOOL)translatesAutoresizingMaskIntoConstraints NS_AVAILABLE_IOS(6_0); // Default YES
  需要将其设置为NO;
  >
  下面用简单例子说明一下:
  UIView *v1 = [[UIView alloc] initWithFrame:CGRectZero];
  v1.translatesAutoresizingMaskIntoConstraints = NO;
  v1.backgroundColor = [UIColor redColor];
  [self.view addSubview:v1];

  UIView *v2 = [[UIView alloc] initWithFrame:CGRectZero];
  v2.backgroundColor = [UIColor grayColor];
  v2.translatesAutoresizingMaskIntoConstraints = NO;
  [self.view addSubview:v2];//添加两个允许自动布局的子视图
  
  [self.view addConstraint:[NSLayoutConstraint constraintWithItem:v1
  attribute:NSLayoutAttributeWidth
  relatedBy:NSLayoutRelationEqual
  toItem:self.view
  attribute:NSLayoutAttributeWidth
  multiplier:1.0
  constant:0]];//设置子视图的宽度和父视图的宽度相同

  [self.view addConstraint:[NSLayoutConstraint constraintWithItem:v1
  attribute:NSLayoutAttributeHeight
  relatedBy:NSLayoutRelationEqual
  toItem:self.view
  attribute:NSLayoutAttributeHeight
  multiplier:0.5
  constant:0]];//设置子视图的高度是父视图高度的一半

  [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|-0-[v1][v2(==v1)]-0-|" options:0 metrics:nil views:views]];//通过addConstraints 添加对水平方向上v1的控制--距离父视图左侧距离为0(距离为0的话也可省略)同时将v2的水平方向的宽度和v1设置成相同
  
  [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[v1][v2(==v1)]|" options:0 metrics:nil views:views]];/通过addConstraints 添加对垂直方向上v1的控制--距离父视图上侧距离为0(距离为0的话也可省略)同时将v2的垂直方向的高度和v1设置成相同
  
  [self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[v1]-0-[v2]-0-|" options:0 metrics:nil views:views]];//最后是垂直布局两个子view
  这样就可以实现上下两个view,各占一半。旋转屏幕的情况下也会自动处理布局。这样看起来代码多,但是可以适应多种分辨率的屏幕。不排除以后苹果出更大更多分辨率的手机。

  关于constraintsWithVisualFormat:函数介绍:
  
  constraintsWithVisualFormat:参数为NSString型,指定Contsraint的属性,是垂直方向的限定还是水平方向的限定,参数定义一般如下:
  V:|-(>=XXX) :表示垂直方向上相对于SuperView大于、等于、小于某个距离
  若是要定义水平方向,则将V:改成H:即可
  在接着后面-[]中括号里面对当前的View/控件 的高度/宽度进行设定;
  options:字典类型的值;这里的值一般在系统定义的一个enum里面选取
  metrics:nil;一般为nil ,参数类型为NSDictionary,从外部传入 //衡量标准
  views:就是上面所加入到NSDictionary中的绑定的View
  在这里要注意的是 AddConstraints 和 AddConstraint 之间的区别,一个添加的参数是NSArray,一个是NSLayoutConstraint
  使用规则

  |: 表示父视图
  -:表示距离
  V: :表示垂直
  H: :表示水平
  >= :表示视图间距、宽度和高度必须大于或等于某个值
  <= :表示视图间距、宽度和高度必须小宇或等于某个值
  == :表示视图间距、宽度或者高度必须等于某个值
  @ :>=、<=、== * 最大为 1000

  1.|-[view]-|: 视图处在父视图的左右边缘内
  2.|-[view] : 视图处在父视图的左边缘
  3.|[view] : 视图和父视图左边对齐
  4.-[view]- : 设置视图的宽度高度
  5.|-30.0-[view]-30.0-|: 表示离父视图 左右间距 30
  6.[view(200.0)] : 表示视图宽度为 200.0
  7.|-[view(view1)]-[view1]-| :表示视图宽度一样,并且在父视图左右边缘内
  8. V:|-[view(50.0)] : 视图高度为 50
  9: V:|-(==padding)-[imageView]->=0-[button]-(==padding)-| : 表示离父视图的距离
  为Padding,这两个视图间距必须大于或等于0并且距离底部父视图为 padding。
  10: [wideView(>=60@700)] :视图的宽度为至少为60 不能超过 700
  11: 如果没有声明方向默认为 水平 V:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
可以用电高压锅做蛋糕吗 蛋糕机选哪家实惠? 京东闪付开通后无法添加到applepay怎么办 二年级数学说课稿范文 苹果手机电充到80就不充了怎么回事 上有八,下有八中间有个十字花打一字 ...排名22000.能否上到广工的机械制造和自动化(卓越工程师班)_百度知 ... 把内存由DDR2升级到DDR3,是不是要设置什么东东啊。 怎样吧DDR2的内存条改成DDR3 ...的内存条是DDR2的,我想换DDR3的可以吗?该怎么换?还有该注意什么... 怎么用sketch做ios ui IOS UI设计问题 ios开发怎样自定义uicontroller窗口的大小 ios 怎么新建uiwindow ios uiview 怎么移除当前动画 IOS中 UIView和UIViewController的区别 梦见用炉具炼死人我和他老婆好了 梦见炉灶火烧的旺还下大雨? 家里的锅都让我用坏了有什么寓意吗 梦见熊熊大火烧踏炉灶什么意思 男人吃什么能生精,能怎么直接补充呢? 吃什么可以增加精数量,男性补精子,在什么时候能调理? 吃什么补肾补精,吃些什么能调理? 请问酪蛋白磷酸肽有什么作用,是保健成分吗? 补精吃什么食物,又是什么好的调理方法呢? 黑妹木糖醇,跟CPP钙牙膏是不是抗过敏牙膏? 吃什么东西能够补精,能吃什么调理的呢? 吃什么补精最快,吃些什么能调理? cpP是什么意思? 吃啥能补精效果最好? ios uitableview怎么只刷新一个区的数据 IOS端的UI设计所有的标注都应该是偶数吗 sketch58没有iOS UI组件怎么办 ios做ui界面是用纯代码实现好还是拖控件好 国内外有哪些优秀人物传记? 你们都知道那些励志的人物传记? 16年感动中国十大人物颁奖词及人物传记 有哪些人物传记是非常励志的,可以激励年轻人奋斗的? 立志 自立自强 独立的人物传记 有什么好看的励志类人物传记?请推荐几部,谢谢! 有哪些能让人燃起人生斗志的人物传记或小说? 盘点十大励志人物传记电影,【免费高清】在线观看百度网盘资源 中国近代史上的人物传记 大学生看着励志的人物传记! 附魔300以后去哪学? 我想知道世界上最有影响力的10本人物传记,和最有影响力的励志小说!!!谢谢!!! 亭亭玉立的意思是什么 魔兽世界的附魔300以后在哪里学?附魔300以上多少及可以学? 亭亭玉立和婷婷玉立有什么区别? “亭亭玉立”的意思是什么?