/// 从iOS9开始 提供用于快速实现布局的控件

/// 特点是不用写具体的约束 而是通过属性声明想要的一个布局效果 内部自动添加完善的约束

@interface UIStackView : UIView

/// 构造方法

- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;

- (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;

- (instancetype)initWithArrangedSubviews:(NSArray<__kindof UIView *> *)views; // Adds views as subviews of the receiver.

/// 被管理布局的子views

@property(nonatomic,readonly,copy) NSArray<__kindof UIView *> *arrangedSubviews;

/// 添加/移除/插入一个view 并对其约束进行管理

/// addSubView也能添加一个子view进来 不过约束不受控制

- (void)addArrangedSubview:(UIView *)view;

- (void)removeArrangedSubview:(UIView *)view;

- (void)insertArrangedSubview:(UIView *)view atIndex:(NSUInteger)stackIndex;

/// 声明布局方向

@property(nonatomic) UILayoutConstraintAxis axis;

/// 声明与布局方向同向的一个布局规则

/// 比如axis定义为水平布局  那么这个属性就是定义水平方向上的布局规则  反之 就是定义垂直方向上的布局规则

@property(nonatomic) UIStackViewDistribution distribution;

/// 跟distribution相反 定义非布局方向上的一个布局规则

@property(nonatomic) UIStackViewAlignment alignment;

/// 设置默认的一个控件间距

@property(nonatomic) CGFloat spacing;

/// spacing是对全部子控件生效的 这个方法是从iOS11开始可以针对某个控件 单独设置不同的spacing

- (void)setCustomSpacing:(CGFloat)spacing afterView:(UIView *)arrangedSubview API_AVAILABLE(ios(11.0),tvos(11.0));

- (CGFloat)customSpacingAfterView:(UIView *)arrangedSubview API_AVAILABLE(ios(11.0),tvos(11.0));

/// 声明文本控件在计算spacing的时候 是否针对字体的基线

/// 同一个label用富文本显示不同字体的时候 即使fontsize是一样的 也会出现不同字体不是底部对齐的情况 就是因为不同字体 基线不同

@property(nonatomic,getter=isBaselineRelativeArrangement) BOOL baselineRelativeArrangement;

/// 从iOS8开始 UIview有layoutMargins属性

/// 这个Bool值就是声明子控件布局约束是针对layoutMargins 还是 针对bounds

/// 打个比方 当一个UIView的layoutMargins.top = 10的时候,这个时候子控件的top如果 = 5,那么当布局针对bounds的时候 顶部留白就是5,如果是针对layoutMargins,就是加上这个layoutMargins.top = 10,那么顶部留白就是15。

@property(nonatomic,getter=isLayoutMarginsRelativeArrangement) BOOL layoutMarginsRelativeArrangement;

@end

iOS_OC_UIStackView属性和方法讲解相关推荐

  1. ExtJs window(一)使用API以及window常用属性和方法

    1.使用API xtype:组件的别名 Hierarchy 层次结构 Inherited mixins 混入的类 Requires 该组件需要使用的类 configs:组件的配置信息 properti ...

  2. python程序实例讲解_Python编程之属性和方法实例详解

    本文实例讲述了Python编程中属性和方法使用技巧.分享给大家供大家参考.具体分析如下: 一.属性 在python中,属性分为公有属性和私有属性,公有属性可以在类的外部调用,私有属性不能在类的外部调用 ...

  3. 基于js对象,操作属性、方法详解

    一,概述 在Java语言中,我们可以定义自己的类,并根据这些类创建对象来使用,在Javascript中,我们也可以定义自己的类,例如定义User类.Hashtable类等等. 目前在Javascrip ...

  4. python3类的继承详解_基于python3 类的属性、方法、封装、继承详解

    下面小编就为大家带来一篇基于python3 类的属性.方法.封装.继承实例讲解.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 Python 类 Python中的类提供了 ...

  5. Java集合框架概述及Collection接口方法讲解

    Java集合框架概述 一方面, 面向对象语言对事物的体现都是以对象的形式,为了方便对多个对象 的操作,就要对对象进行存储.另一方面,使用Array存储对象方面具有一些弊 端,而Java 集合就像一种容 ...

  6. h5的横线_使用HTML5 Canvas绘制直线或折线等线条的方法讲解

    HTML5 Canvas基本概念讲解html5,这个应该就不需要多作介绍了,只要是开发人员应该都不会陌生.html5是「新兴」的网页技术标准,目前,除IE8及其以下版本的IE浏览器之外,几乎所有主流浏 ...

  7. RestTemplate使用实战-exchange方法讲解-HTTP请求

    RestTemplate使用实战-exchange方法讲解 2019-10-28 12:40:51  阅读:160  来源: 互联网 标签:HTTP 请求 exchange RestTemplate  ...

  8. vue3组件之间通信(三)——爷孙组件传递属性和方法

    文章目录 1:setup函数传递属性和方法($attrs) 1:代码 2:主要代码和详细讲解 3:注意点 2:script setup 语法糖传递属性和方法 1:代码 2:主要代码和详细讲解 3:注意 ...

  9. JavaScript 中BOM及window的相关属性及方法

    概述:BOM (全称bowser object model) 浏览器对象模型,他是用于操作浏览器相关的内容.BOM是一个缺乏规范的东西,为了保证他的规范性产生了一系列的共用对象来解决这个问题.沿用至今 ...

最新文章

  1. 深度学习引擎的终极形态是什么?
  2. Ubuntu16.04能识别U盘,但无法识别光盘
  3. APK反编译得工具总结(转载)
  4. No1_6.字符串的基本操作2_Java学习笔记
  5. 解决:Access denied for user ‘root‘@‘localhost‘ (using password: YES)
  6. CI下载与安装_基础配置_MVC
  7. mysql 什么时候用内连接_mysql显示内连接和隐式内连接的区别,什么时候非要用到显示内连接。...
  8. 域服务器系统建设方案,AD域及Exchange部署专项方案.doc
  9. Windows如何设置右键快捷键
  10. oracle 索引详解 注:转自红黑联盟非原创
  11. Android自定义星星评分控件,高效
  12. 【Ruby on Rails全栈课程】3.7 邮件发送(SendCloud、MailGun)
  13. flex布局以及实现垂直居中
  14. html5 ios keychain,iOS10适配之Keychain读写失败
  15. 谁有全民一起mysql_我是Redis,MySQL大哥被我害惨了!
  16. OpenCv初学者学习笔记(一):图像视频的加载与显示
  17. [产品07]-产品设计定律-菲茨定律/席克定律
  18. 如何防止勒索病毒祸害医院:不要裸奔,要灾备造就安全
  19. 网页排序算法之PageRank
  20. 阿里云服务器MySQL与本地连接(Linux)

热门文章

  1. 世界上污染最严重的5片海洋
  2. 已解决‘pyhton‘不是内部或外部命令,也不是可运行的程序或批处理文件。
  3. 识别电路画等效电路的几种方法
  4. 【日语】标日初级上册单词(17-20)1
  5. 成都乐而得教育:店铺质量分的提升方法
  6. 编码器与光电码盘相比的缺点
  7. DPlayer使用和下载
  8. 【京东飞天茅台1499抢购】Python 脚本的完整安装、使用教程与解决方案
  9. 【集合】遍历 List 集合的几种方式
  10. Variable Expansion in Applescript