`
啸笑天
  • 浏览: 3472384 次
  • 性别: Icon_minigender_1
  • 来自: China
社区版块
存档分类
最新评论

IOS UIView自动调整尺寸

 
阅读更多

 

自动尺寸调整行为

当您改变视图的边框矩形时,其内嵌子视图的位置和尺寸往往也需要改变,以适应原始视图的新尺寸。如果视图的autoresizesSubviews属性声明被设置为YES,则其子视图会根据autoresizingMask属性的值自动进行尺寸调整。简单配置一下视图的自动尺寸调整掩码常常就能使应用程序得到合适的行为;否则,应用程序就必须通过重载layoutSubviews方法来提供自己的实现。

设置视图的自动尺寸调整行为的方法是通过位OR操作符将期望的自动尺寸调整常量连结起来,并将结果赋值给视图的autoresizingMask属性。表2-1列举了自动尺寸调整常量,并描述这些常量如何影响给定视图的尺寸和位置。举例来说,如果要使一个视图和其父视图左下角的相对位置保持不变,可以加入UIViewAutoresizingFlexibleRightMargin和UIViewAutoresizingFlexibleTopMargin常量,并将结果赋值给autoresizingMask属性。当同一个轴向有多个部分被设置为可变时,尺寸调整的裕量会被平均分配到各个部分上。

UIViewAutoresizingNone

这个常量如果被设置,视图将不进行自动尺寸调整。

UIViewAutoresizingFlexibleHeight

这个常量如果被设置,视图的高度将和父视图的高度一起成比例变化。否则,视图的高度将保持不变。

UIViewAutoresizingFlexibleWidth

这个常量如果被设置,视图的宽度将和父视图的宽度一起成比例变化。否则,视图的宽度将保持不变。

UIViewAutoresizingFlexibleLeftMargin

这个常量如果被设置,视图的左边界将随着父视图宽度的变化而按比例进行调整。否则,视图和其父视图的左边界的相对位置将保持不变。

UIViewAutoresizingFlexibleRightMargin

这个常量如果被设置,视图的右边界将随着父视图宽度的变化而按比例进行调整。否则,视图和其父视图的右边界的相对位置将保持不变。

UIViewAutoresizingFlexibleBottomMargin

这个常量如果被设置,视图的底边界将随着父视图高度的变化而按比例进行调整。否则,视图和其父视图的底边界的相对位置将保持不变。

UIViewAutoresizingFlexibleTopMargin

这个常量如果被设置,视图的上边界将随着父视图高度的变化而按比例进行调整。否则,视图和其父视图的上边界的相对位置将保持不变。

图2-8为这些常量值的位置提供了一个图形表示。如果这些常量之一被省略,则视图在相应方向上的布局就被固定;如果某个常量被包含在掩码中,在该方向的视图布局就就灵活的。

图2-8  视图的自动尺寸调整掩码常量


 

如果您通过Interface Builder配置视图,则可以用Size查看器的Autosizing控制来设置每个视图的自动尺寸调整行为。上图中的灵活宽度及高度常量和 Interface Builder中位于同样位置的弹簧具有同样的行为,但是空白常量的行为则是正好相反。换句话说,如果要将灵活右空白的自动尺寸调整行为应用到 Interface Builder的某个视图,必须使相应方向空间的Autosizing控制为空,而不是放置一个支柱。幸运的是,Interface Builder通过动画显示了您的修改对视图自动尺寸调整行为的影响。

如果视图的autoresizesSubviews属性被设置为NO,则该视图的直接子视图的所有自动尺寸调整行为将被忽略。类似地,如果一个子视图的自动尺寸调整掩码被设置为UIViewAutoresizingNone,则该子视图的尺寸将不会被调整,因而其直接子视图的尺寸也不会被调整。

请注意:为了使自动尺寸调整的行为正确,视图的transform属性必须设置为恒等变换;其它变换下的尺寸自动调整行为是未定义的。

自动尺寸调整行为可以适合一些布局的要求,但是如果您希望更多地控制视图的布局,可以在适当的视图类中重载layoutSubviews方法。有关视图布局管理的更多信息,请参见“响应布局的变化”部分。

 

 

 

 

 

 

 

 

 

 

 

  • 大小: 25.1 KB
分享到:
评论

相关推荐

    iOS UIView布局类目

    1. **自动计算尺寸**:在原生的`UIView`中,计算子视图的大小通常需要手动遍历并处理约束。类目可能会提供一个方法,例如`autoCalculatedSize`,自动根据约束计算出视图的大小,节省了手动计算的时间。 2. **中心...

    iOS UIView类 UIViewExt工具

    - `intrinsicContentSize`: 用于获取视图根据内容自动调整的大小。 - `constrainedToSuperviewBounds`: 方法来确保视图在其父视图的边界内。 3. **层次和视图查找**: - `subviewsOfKindOfClass:`:通过指定的类...

    iOS UIView

    通过这种方式,视图能够根据不同的屏幕尺寸和方向自动调整其位置和大小,从而保证应用在不同设备上的适配性。 #### 八、总结 `UIView`作为iOS开发中的基石之一,其重要性不言而喻。通过本文对`UIView`的基本概念、...

    ios-居中标签实现.zip

    瀑布流布局是一种常见的网格展示方式,尤其适用于商品展示或图片浏览,其特点是每一列的高度不固定,会根据内容自动调整,而标签的居中则是为了提供清晰的视觉引导。 首先,我们要理解“标签”在iOS中的概念。在iOS...

    IOS ScrollView自动翻页

    在自动翻页中,这个过程通常由定时器驱动,每隔一定时间间隔自动调整Offset。 1. **自动翻页的实现方式**: - 使用NSTimer:设定一个定时器,每隔一段时间(如2秒)更新ScrollView的contentOffset,模拟用户滑动...

    iOS 广告自动循环播放

    同时,对广告图片进行适当的尺寸调整和压缩,以降低内存占用和加载时间。 通过以上步骤,我们可以创建一个高效且用户友好的广告自动循环播放功能。对于给定的`AdScrollerView`文件,开发者可以查看其源代码,学习...

    ios图片自动移动demo

    如果项目中包含了Auto Layout,那么图片的位置可能会根据其他视图和屏幕尺寸动态调整。 总结来说,这个"ios图片自动移动demo"涵盖了以下知识点: 1. iOS中的`UIView`动画:包括`animateWithDuration:`和`animate...

    ios-图片自动轮播.zip

    另外,还可以使用UIImageView的imageWithContentMode:adjustsImageWhenAncestorFocused:方法,根据屏幕尺寸自动调整图片大小,避免不必要的内存开销。 8. **自定义过渡动画**:如果需要更丰富的过渡效果,如淡入...

    ios-自动移动.zip

    在这个“ios-自动移动.zip”压缩包中,我们关注的是如何实现一个横向自动移动的视图,这通常涉及到UIKit框架中的动画相关API。 首先,我们需要了解iOS中的CAAnimation和UIViewAnimation。CAAnimation是Core ...

    ios-textView自动换行.zip

    本教程将深入探讨如何在iOS应用中实现`textView`的自动换行,并优化输入框适配。 首先,我们要了解`UITextView`的基础属性和方法。`UITextView`继承自`UIView`,它有一个关键属性`textContainer`,用于存储和显示...

    关于iOS自动布局

    自动布局是iOS开发中一个非常强大的功能,通过合理的约束设置,可以大大降低适配不同屏幕尺寸的工作量,提高开发效率。理解自动布局的基本原理及其在代码中的实现方式对于iOS开发者来说至关重要。

    核心动画之CABasicAnimation

    在iOS开发中,Core Animation是苹果提供的一种强大的动画框架,用于创建流畅、高效的2D图形和动画效果。...在学习和实践中,不断尝试调整参数和组合不同的动画,将有助于你更好地掌握Core Animation的精髓。

    ios-自动滚动广告轮播视图.zip

    此外,该项目可能还包含了错误处理和自适应屏幕尺寸的实现,这些都是iOS开发中非常重要的实践。 总之,"ios-自动滚动广告轮播视图.zip" 提供了一个学习和参考的实例,有助于开发者掌握在iOS应用中创建自动滚动广告...

    iOS KVO 监听frame

    在标题“iOS KVO 监听frame”中,我们关注的是如何使用KVO来跟踪和响应UI控件(如UIView)的frame属性变化。这在布局动画或者动态调整界面时非常有用。下面我们将深入探讨KVO的概念、如何实现以及在监听frame变化时...

    UIView+Utils

    1. **尺寸获取**:在iOS开发中,获取视图的实际尺寸(包括frame、bounds、center等)有时会因为自动布局和屏幕尺寸变化而变得复杂。`UIView+Utils`可能提供了如`width`、`height`、`size`这样的快捷属性,直接返回...

    UIView AutoLayout.zip

    在iOS开发中,AutoLayout是苹果提供的一种强大的界面布局机制,它允许开发者在不同尺寸的屏幕上创建适应性强、响应式的用户界面。`UIView AutoLayout`是这个机制的一个扩展,为`UIView`类添加了分类,提供了更加简洁...

    ios 下拉列表 自动实现上拉或下拉

    在iOS开发中,创建一个能够根据父视图边界自动调整显示方向(上拉或下拉)的下拉列表是一项常见的需求。这样的功能可以提供更好的用户体验,使得用户在有限的屏幕空间内更容易操作。本文将详细讲解如何实现这样一个...

    详解iOS应用开发中autoresizing尺寸自动适应属性的用法

    在iOS应用开发中,Autoresizing是UIKit框架提供的一种尺寸自动适应机制,用于帮助视图在不同屏幕尺寸下保持布局的合理性。它通过一种相对位置的方式来调整视图在大小改变时的位置和大小。随着iOS设备多样化的屏幕...

    UIView相关示例代码

    在iOS开发中,UIView是构建用户界面的基本组件,它提供了屏幕上的可视区域,可以包含其他视图、图像、标签等元素。本示例代码着重展示了UIView及其子类UILabel、UIImageView和UIImage的常见用法,以及如何通过...

    IOS自动布局XIB和CODE,附代码和PPT

    通过这些规则,系统可以在不同屏幕尺寸和设备方向下自动调整视图的位置和大小。 在XIB中使用自动布局,首先我们需要打开或创建一个.xib文件。在Interface Builder中,我们可以直接拖拽视图并设置约束。在“Size ...

Global site tag (gtag.js) - Google Analytics