我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Objective-C的UIStackView常用属性函数有哪些

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Objective-C的UIStackView常用属性函数有哪些

本篇内容介绍了“Objective-C的UIStackView常用属性函数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

UIStackView

UIStackView能够利用自动布局的功能,创建能够动态适应设备方向、屏幕大小和可用空间中任何更改的用户界面。

UIStackView管理其arrangedSubviews属性中所有视图的布局。这些视图是根据它们在arrangedSubviews数组中的顺序沿堆栈视图的轴线排列的。具体布局因UIStackView的轴线、分布、对齐、间距和其他特性而异。

我们负责定义UIStackView的位置和大小(可选),UIStackView管理其内容的布局和大小。

UIStackView使用的简单示例:\color{red}{UIStackView使用的简单示例 :}UIStackView使用的简单示例:

- (void)viewDidLoad {    [super viewDidLoad];    UIButton *redButton = [UIButton buttonWithType:UIButtonTypeCustom];    [redButton setTitle:@"红色按钮" forState:UIControlStateNormal];    redButton.backgroundColor = [UIColor redColor];        UIButton *greenButton = [UIButton buttonWithType:UIButtonTypeCustom];    [greenButton setTitle:@"绿色按钮" forState:UIControlStateNormal];    greenButton.backgroundColor = [UIColor greenColor];    UIButton *blueButton = [UIButton buttonWithType:UIButtonTypeCustom];    [blueButton setTitle:@"蓝色按钮" forState:UIControlStateNormal];    blueButton.backgroundColor = [UIColor blueColor];        UIStackView *stackView = [[UIStackView alloc]initWithArrangedSubviews:@[redButton,greenButton,blueButton]];    stackView.backgroundColor = [UIColor yellowColor];    stackView.alignment = UIStackViewAlignmentCenter;    stackView.axis = UILayoutConstraintAxisHorizontal;    stackView.distribution = UIStackViewDistributionFill;    [self.view addSubview:stackView];        stackView.translatesAutoresizingMaskIntoConstraints = NO;    [self.view addConstraints:@[        [stackView.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor],        [stackView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor],    ]];}

显示如下:

Objective-C的UIStackView常用属性函数有哪些

当设置蓝色视图隐藏时,显示如下:

Objective-C的UIStackView常用属性函数有哪些

当修改UIStackView约束,限制UIStackView大小时,显示如下:

stackView.translatesAutoresizingMaskIntoConstraints = NO;[self.view addConstraints:@[     [stackView.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor],     [stackView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor],     [stackView.heightAnchor constraintEqualToConstant:100],     [stackView.widthAnchor constraintEqualToConstant:300], ]];

Objective-C的UIStackView常用属性函数有哪些

当修改子视图约束,限制子视图大小时,显示如下:

stackView.translatesAutoresizingMaskIntoConstraints = NO;    [self.view addConstraints:@[        [stackView.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor],        [stackView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor],    ]];        redButton.translatesAutoresizingMaskIntoConstraints = NO;    [stackView addConstraints:@[        [redButton.heightAnchor constraintEqualToConstant:50],        [redButton.widthAnchor constraintEqualToConstant:100],    ]];        greenButton.translatesAutoresizingMaskIntoConstraints = NO;    [stackView addConstraints:@[        [greenButton.heightAnchor constraintEqualToConstant:50],        [greenButton.widthAnchor constraintEqualToConstant:80],    ]];        blueButton.translatesAutoresizingMaskIntoConstraints = NO;    [stackView addConstraints:@[        [blueButton.heightAnchor constraintEqualToConstant:50],        [blueButton.widthAnchor constraintEqualToConstant:120],    ]];

Objective-C的UIStackView常用属性函数有哪些

既限制UIStackView约束,又限制子视图约束时,至少有一个子视图可以由UIStackView进行调整,显示如下:

- (void)viewDidLoad {    [super viewDidLoad];    UIButton *redButton = [UIButton buttonWithType:UIButtonTypeCustom];    [redButton setTitle:@"红色按钮" forState:UIControlStateNormal];    redButton.backgroundColor = [UIColor redColor];        UIButton *greenButton = [UIButton buttonWithType:UIButtonTypeCustom];    [greenButton setTitle:@"绿色按钮" forState:UIControlStateNormal];    greenButton.backgroundColor = [UIColor greenColor];    UIButton *blueButton = [UIButton buttonWithType:UIButtonTypeCustom];    [blueButton setTitle:@"蓝色按钮" forState:UIControlStateNormal];    blueButton.backgroundColor = [UIColor blueColor];        UIStackView *stackView = [[UIStackView alloc]initWithArrangedSubviews:@[redButton,greenButton,blueButton]];    stackView.backgroundColor = [UIColor yellowColor];    stackView.alignment = UIStackViewAlignmentCenter;    stackView.axis = UILayoutConstraintAxisHorizontal;    stackView.distribution = UIStackViewDistributionFill;    [self.view addSubview:stackView];        stackView.translatesAutoresizingMaskIntoConstraints = NO;    [self.view addConstraints:@[        [stackView.centerYAnchor constraintEqualToAnchor:self.view.centerYAnchor],        [stackView.centerXAnchor constraintEqualToAnchor:self.view.centerXAnchor],        [stackView.heightAnchor constraintEqualToConstant:100],        [stackView.widthAnchor constraintEqualToConstant:200],    ]];        redButton.translatesAutoresizingMaskIntoConstraints = NO;    [stackView addConstraints:@[        [redButton.heightAnchor constraintEqualToConstant:50],        [redButton.widthAnchor constraintEqualToConstant:80],    ]];        greenButton.translatesAutoresizingMaskIntoConstraints = NO;    [stackView addConstraints:@[        [greenButton.heightAnchor constraintEqualToConstant:50],        [greenButton.widthAnchor constraintEqualToConstant:80],    ]];        blueButton.translatesAutoresizingMaskIntoConstraints = NO;    NSLayoutConstraint *blueButtonWidthAnchor = [blueButton.widthAnchor constraintEqualToConstant:120];    blueButtonWidthAnchor.priority = UILayoutPriorityDefaultLow;    [stackView addConstraints:@[        [blueButton.heightAnchor constraintEqualToConstant:50],        blueButtonWidthAnchor,    ]];}

Objective-C的UIStackView常用属性函数有哪些

UIStackView就像一个自动适应其子视图约束或管理其子视图约束的容器视图,可以大量的节省设置或更新约束的代码。我们需要在某一方面放权给UIStackView,如果我们严格限制UIStackView的约束,就应当给予UIStackView自动调整其子视图约束的权力,如果我们严格限制其子视图约束,就应当给予UIStackView自动调整自身约束的权力,如果我们既严格限制UIStackView的约束,又严格限制其子视图约束,我们会得到约束冲突,这是来自UIStackView的抗议。

常用属性

@property(nonatomic) UILayoutConstraintAxis axis;

属性描述设置UIStackView排列视图时所沿的轴线方向。UILayoutConstraintAxis提供了两个枚举值,UILayoutConstraintAxisHorizontal(水平排列)与UILayoutConstraintAxisVertical(垂直排列),默认为UILayoutConstraintAxisHorizontal。

  • UILayoutConstraintAxis提供的枚举值:

typedef NS_ENUM(NSInteger, UILayoutConstraintAxis) {    //水平排列    UILayoutConstraintAxisHorizontal = 0,    //垂直排列    UILayoutConstraintAxisVertical = 1};
@property(nonatomic) UIStackViewDistribution distribution;

属性描述设置UIStackView沿指定轴线方向布局子视图的方式

  • UIStackViewDistribution提供的布局子视图的方式如下:

typedef NS_ENUM(NSInteger, UIStackViewDistribution) {            UIStackViewDistributionFill = 0,            UIStackViewDistributionFillEqually,            UIStackViewDistributionFillProportionally,            UIStackViewDistributionEqualSpacing,            UIStackViewDistributionEqualCentering,} API_AVAILABLE(ios(9.0));
@property(nonatomic) UIStackViewAlignment alignment;

属性描述UIStackView排列的子视图的对齐方式,其对齐方式受UIStackView排列视图时所沿的轴线方向影响。

  • UIStackViewAlignment提供的对齐子视图的方式如下:

typedef NS_ENUM(NSInteger, UIStackViewAlignment) {        UIStackViewAlignmentFill,            UIStackViewAlignmentLeading,        UIStackViewAlignmentTop = UIStackViewAlignmentLeading,        UIStackViewAlignmentFirstBaseline,             UIStackViewAlignmentCenter,            UIStackViewAlignmentTrailing,        UIStackViewAlignmentBottom = UIStackViewAlignmentTrailing,        UIStackViewAlignmentLastBaseline, // Valid for horizontal axis only} API_AVAILABLE(ios(9.0));
@property(nonatomic) CGFloat spacing;

属性描述UIStackView排列子视图相邻边之间的间距。此属性定义了UIStackViewDistributionFill、UIStackViewDistributionFillEqually、UIStackViewDistributionFillProportionally布局的排列视图之间的严格间距,UIStackViewDistributionEqualSpace和UIStackViewDistributionEqualCenter布局的最小间距。使用负值允许重叠。默认值为0.0。

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

属性描述一个布尔值,默认值为NO,用于确定是否从视图的基线测量视图之间的垂直间距。如果为YES,视图之间的垂直间距将从基于文本的视图的最后一条基线到其下方视图的第一条基线进行测量。顶部和底部视图的定位也使其最近的基线距离堆栈视图的边缘指定的距离。此属性仅由垂直排列的UIStackView视图使用。水平排列的UIStackView可以使用alignment属性控制。

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

属性描述如果为YES,UIStackView将相对于其布局边距布局其排列视图。如果为NO,它将相对于其边界布置排列的视图。默认为NO。

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

属性描述由UIStackView排列的视图数组。UIStackView确保了arrangedSubviews数组总是它的子视图数组(subviews)的一个子集。每当调用addArrangedSubview:方法时,如果尚未添加该子视图,UIStackView都会将该视图添加为子视图,每当调用removeFromSuperview:方法时,UIStackView也会将其从arrangedSubviews中删除。

常用函数

- (instancetype)initWithFrame:(CGRect)frame NS_DESIGNATED_INITIALIZER;- (instancetype)initWithCoder:(NSCoder *)coder NS_DESIGNATED_INITIALIZER;

函数描述 :初始化UIStackView。

- (instancetype)initWithArrangedSubviews:(NSArray<__kindof UIView *> *)views;

函数描述返回管理所提供的视图的UIStackView对象。UIStackView将所有需要排列的视图添加到其arrangedSubviews组中,并这些视图添加为子视图。如果arrangedSubviews数组中包含的任何视图收到removeFromSuperview的方法调用,UIStackView也会将其从arrangedSubviews中删除。

参数 :

views :要由UIStackView排列的视图数组。

返回值 : 一个新的UIStackView对象。

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

函数描述将视图添加到arrangedSubviews数组的末尾。UIStackView确保了arrangedSubviews数组总是它的子视图数组(subviews)的一个子集。如果尚未添加该子视图,此方法会自动将提供的视图添加为UIStackView的子视图,如果已经添加该子视图,此函数不做操作。

参数 :

view : 要添加到由UIStackView排列的视图数组中的视图。

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

函数描述此方法从UIStackView的arrangedSubviews数组中删除提供的视图。视图的位置和大小将不再由堆栈视图管理。但是,此方法不会从堆栈的子视图数组中(subviews)删除提供的视图,因此视图仍然显示为视图层次的一部分,视图仍显示在屏幕上,需要通过调用视图的removeFromSuperview方法从子视图数组中显式删除视图。

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

函数描述将提供的视图添加到排列的子视图数组中指定的索引处。如果索引已被占用,UIStackView会增加arrangedSubviews数组的大小,并将其被占用的索引及被占用的索引以上位置的所有内容移动到数组中更高的空间(索引后移),然后UIStackView将提供的视图存储在索引处。如果插入的视图尚未添加到UIStackView,此方法会自动将提供的视图添加为UIStackView的子视图,但插入的索引位置仅影响arrangedSubviews数组中视图的顺序,它不会影响子视图数组(subviews)中视图的顺序,也就是说插入的视图仍旧添加到子视图数组(subviews)的末尾。

参数 :

view : 要插入到由UIStackView排列的视图数组中的视图。

stackIndex : 其在arrangedSubviews数组中插入新视图的索引,此值不得大于此数组中当前的视图数,如果索引超出范围,此方法将抛出NSInternalInconsistencyException异常。

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

函数描述 :水平排列时,在指定视图后缘应用自定义间距。垂直排列时,在指定视图下缘应用自定义间距。

参数 :

spacing : 自定义间距。

arrangedSubview : 指定视图。

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

函数描述 :水平排列时,返回指定视图后缘应用自定义间距。垂直排列时,返回指定视图下缘自定义间距。

参数 :

arrangedSubview : 指定视图。

“Objective-C的UIStackView常用属性函数有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Objective-C的UIStackView常用属性函数有哪些

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Objective-C的UIStackView常用属性函数有哪些

本篇内容介绍了“Objective-C的UIStackView常用属性函数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!UIStack
2023-07-05

C#数组常用属性和方法有哪些

本篇内容主要讲解“C#数组常用属性和方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#数组常用属性和方法有哪些”吧!C#数组实际上是对象。System.Array 是所有数组类型的抽象
2023-06-17

JavaScript有哪些常用属性

JavaScript是一种广泛使用的编程语言,主要用于网页开发和应用程序开发。它具有很多强大的属性,可以帮助开发人员编写更加灵活、高效和功能丰富的应用程序。在本文中,我们将探讨JavaScript中一些常用的属性。1. length属性length属性用于返回数组中元素的数量。当向数组添加或删除元素时,该属性的值也会相应地调整。例如,以下代码将创建一个数组,然后将三个元素添加到
2023-05-14

分析 C++ 函数性能的常用工具有哪些?

c++++ 函数性能分析工具汇总:gprof:分析函数调用图、运行时间和调用频率。valgrind:检测内存错误和性能问题,分析函数调用、内存分配和缓存命中率。perf:收集和分析性能数据,提供有关 cpu 利用率、内存使用和函数调用的详细
分析 C++ 函数性能的常用工具有哪些?
2024-04-18

CSS中有哪些常用的属性

本篇内容主要讲解“CSS中有哪些常用的属性”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CSS中有哪些常用的属性”吧!CSS 指的是层叠样式表 (Cascading Style Sheets),
2023-06-27

Python中os.path函数有哪些属性

本篇文章为大家展示了Python中os.path函数有哪些属性,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1.获取当前时间# -*- coding: gbk -*- import os imp
2023-06-17

常用的oracle游标属性有哪些

常用的Oracle游标属性有以下几种:1. %FOUND: 返回一个布尔值,如果最后一次fetch操作返回了一行数据,则返回TRUE,否则返回FALSE。2. %NOTFOUND: 返回一个布尔值,如果最后一次fetch操作没有返回任何数据
2023-09-21

canvas标签的常用属性有哪些?

学习canvas标签的常见属性有哪些,需要具体代码示例HTML5引入的canvas标签是一个非常强大的绘图工具,可以实现各种图形的绘制和动画效果。熟悉canvas标签的常见属性对于开发者来说非常重要。本文将介绍canvas标签的常见属性,并
canvas标签的常用属性有哪些?
2023-12-28

常用的Flex布局属性有哪些

flex布局的常用属性有哪些,需要具体代码示例Flex布局是一种用于设计响应式网页布局的强大工具。它通过使用一组灵活的属性,可以轻松控制网页中元素的排列方式和尺寸。在本文中,我将介绍Flex布局的常用属性,并提供具体的代码示例。displ
常用的Flex布局属性有哪些
2024-02-25

access控件的常用属性有哪些

access控件的常用属性有:1. Name:控件的唯一标识符。2. Caption:控件的显示文本。3. Enabled:指定控件是否可用。4. Visible:指定控件是否可见。5. BackColor:控件的背景色。6. ForeCo
2023-09-22

C++常用字符串函数有哪些

本篇内容主要讲解“C++常用字符串函数有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C++常用字符串函数有哪些”吧!1、cstring.h常用函数介绍cstring.h库即C语言中的str
2023-06-25

c#常用函数和方法有哪些

本篇内容主要讲解“c#常用函数和方法有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“c#常用函数和方法有哪些”吧!1、DateTime 数字型System.DateTime currentT
2023-06-17

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录