文档章节

UIView常用属性的注意点:

DXSmile_大熊
 DXSmile_大熊
发布于 2016/01/14 19:33
字数 769
阅读 4
收藏 0

UIView常用属性的注意点:

@property(nonatomic) CGRect frame;

// frame 属性注意点:
// 1> frame 表示: 使用控件父容器的坐标系统来描述控件的位置和大小。
// 2> frame 使用的是点坐标系
// 3.1> 修改了控件的 frame 之后, 控件会自动重新显示(但是不调用 drawRect:方法);
// 3.2> 如果希望修改了控件的 frame, 重新显示控件的时候调用drawRect:方法, 那么需要设置控件的contentMode属性值为UIViewContentModeRedraw
// 4> 当修改了控件的 transform属性后, 不要再读取(或修改)frame; 如果要修改控件的位置和大小, 请使用 center bounds 属性


@property(nonatomic) CGRect   bounds;

/ 1> bounds 表示: 使用控件自身的坐标系统来描述控件的位置和大小。(主要是为了让当前控件的子控件方便布局, 当前控件的子控件以这个坐标系为准来进行布局)
// 1.1> 简而言之: bounds.x bounds.y 决定了UIViewsubView的原点坐标。
// 2> bounds 使用的是点坐标系
// 3> 通过 bounds 修改大小, 控件会表现出相对于中心点的大小变化
// 4> bounds 默认的 xy 值是(0, 0), 这个值是可以修改的, 修改了这个值不会影响控件本身的的显示, 而是影响该控件内部子控件的显示(因为改变了当前控件自身的坐标系, 所以该控件的所有子控件的相对位置就发生了变化)
// 5> bounds size 是和 frame size 相关联的, 修改了一个会影响另外一个


@property(nonatomic) CGPoint center;

// 1> center 属性也是用点坐标来描述的
// 2> center 一般指的是当前控件的中心点(在父容器坐标系统中的中心点)
// 3> 修改 center 属性也会影响到 frame 属性
// 4.1> 当一个控件还没有添加到任何父控件中的时候, 此时控件的center就是相对于控件自身左上角的偏移。
// 4.2> 当把一个控件添加到父容器中后, 此时控件的center就变成了相对于父控件的左上角的距离


@property(nullable, nonatomic,readonly) UIView *superview;//父控件

@property(nonatomic,readonly,copy) NSArray<__kindof UIView *> *subviews;//子控件集合数组

@property(nonatomic)NSInteger tag;//tag值,也可以叫识别标识

// 文本框的 text 属性

@property(nullable, nonatomic,copy)   NSString *text;//text属性

// 总结:
// 通过控件的frame可以修改控件的【位置(x, y)】 【大小(width, height)】
// 通过控件的center只能修改控件的【位置(x, y)】

// 通过控件的bounds只能修改控件的【大小(width, height)】

注意:

遇到一个类中有一个属性是”结构体”类型时,那么不可以直接通过类的对象

介绍控件常见的方法
- (
void)removeFromSuperview; 移除

- (void)addSubview:(UIView *)view; 添加

- (nullable __kindof UIView *)viewWithTag:(NSInteger)tag; 用tag值来找控件 //nullable __kindof 表示返回值不能为空,后面跟UIView *,表示返回值必须为一个UIView *


© 著作权归作者所有

DXSmile_大熊
粉丝 9
博文 22
码字总数 28308
作品 0
海淀
项目经理
私信 提问
iOS开发系列--让你的应用“动”起来

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jianxin160/article/details/47753223 --iOS核心动画 概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动...

KenshinCui
2015/08/18
0
0
iOS开发系列--让你的应用“动”起来

概览 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥iOS动画全貌。在这里你可以看到iOS中如何使用图层精简非交互式绘图,如何通过核心动画创建基础动画...

creeve
2014/10/26
0
0
iOS UIScreen详解

获取主屏幕对象 截屏 利用的当前在Screen上的部分生成一个UIView,利用这个UIVIew可以做一些全屏的动画。注意,这样的效果是比生成一副图片的效率要高的。 效果如下: 20150719203348841.pn...

卢叁
2017/11/14
0
0
iOS10 UI教程基改变视图的外观与视图的可见性

iOS10 UI教程基改变视图的外观与视图的可见性 视图是应用程序的界面,是用户在屏幕上看到的对象。用户可以通过触摸视图上的对象与应用程序进行交互,所以视图界面的优劣会直接影响到了客户体...

大学霸
2016/11/22
9
0
iOS学习——核心动画之Layer基础

iOS学习——核心动画之Layer基础 1、CALayer是什么? CALayer我们又称它叫做层。在每个UIView内部都有一个layer这样一个属性,UIView之所以能够显示,就是因为它里面有这个layer才具有显示的...

mukekeheart
2018/07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
5
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0
hive

一、hive的定义: Hive是一个SQL解析引擎,将SQL语句转译成MR Job,然后再在Hadoop平台上运行,达到快速开发的目的 Hive中的表是纯逻辑表,就只是表的定义,即表的元数据。本质就是Hadoop的目...

霉男纸
今天
5
0
二、Spring Cloud—Eureka(Greenwich.SR1)

注:本系列文章所用工具及版本如下:开发工具(IDEA 2018.3.5),Spring Boot(2.1.3.RELEASE),Spring Cloud(Greenwich.SR1),Maven(3.6.0),JDK(1.8) Eureka: Eureka是Netflix开发...

倪伟伟
昨天
17
0
eclipse常用插件

amaterasUML https://takezoe.github.io/amateras-update-site/ https://github.com/takezoe/amateras-modeler modelGoon https://www.cnblogs.com/aademeng/articles/6890266.html......

大头鬼_yc
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部