UIKit (1) ---- UIView

[TOC]

一、官方文档简介

The UIView class defines a rectangular area on the screen and the interfaces for managing the content in that area. At runtime, a view object handles the rendering of any content in its area and also handles any interactions with that content. The UIView class itself provides basic behavior for filling its rectangular area with a background color. More sophisticated content can be presented by subclassing UIView and implementing the necessary drawing and event-handling code yourself.

二、Creating a View

CGRect  viewRect = CGRectMake(10, 10, 100, 100);
UIView* myView = [[UIView alloc] initWithFrame:viewRect];
  • 这个origin坐标是相对上一级视图(super view)坐标系的
  • 插入试图方法
    • addSubview: Add a subview to another view, places the specified view on top of other siblings.
    • insertSubview:aboveSubview:Inserts a view above another view in the view hierarchy.
    • insertSubview:belowSubview:Inserts a view below another view in the view hierarchy.
    • exchangeSubviewAtIndex:withSubviewAtIndex:Exchanges the subviews at the specified indices.

注意:UIView默认是透明的,如果不加背景色的话,即使设置alpha值也体现不出View的层级关系。

三、常用的属性和方法

  1. 属性和说明

  • CGRect frame; 控件的位置和大小,所有的控件必须指定这个属性,否则即使有控件也无法显示
  • CGRect bounds; 当前控件位置和大小,但是和frame不同的是它的位置是确定的(0,0)
  • CGPoint center; 控件的中心位置,一般用户进行控件定位
  • CGAffineTransform transform; 控件矩阵变化,包括平移、缩放、旋转,默认CGAffineTransformIdentity
  • UIViewAutoresizing autoresizingMask; 控件旋转时大小自动伸缩,默认为UIViewAutoresizingNone
  • UIView *superview; 当前控件的父控件
  • NSArray *subviews; 当前控件的所有一级子控件,注意其子控件的子控件并不包括在内
  • BOOL hidden; 是否隐藏,默认为NO
  • UIViewContentMode contentMode; 内容模式,主要用于指定控件内容(注意不是子控件)如何填充,一般UIImageView经常使用,默认为UIViewContentModeScaleToFill
  • NSInteger tag; 控件的标示,可以存储一些和当前控件有关的信息(但是注意只能是整形),默认为0

注意:contentMode属性是一个枚举类型

typedef NS_ENUM(NSInteger, UIViewContentMode) {
UIViewContentModeScaleToFill, //内容按Super比例填充
UIViewContentModeScaleAspectFit, //内容按保持比例不完全填充 contents scaled to fit with fixed aspect. remainder is transparent
UIViewContentModeScaleAspectFill, //内容保持比例完全填充,填充内容有溢出 contents scaled to fill with fixed aspect. some portion of content may be clipped.
UIViewContentModeRedraw, // redraw on bounds change (calls -setNeedsDisplay)
UIViewContentModeCenter, // contents remain same size. positioned adjusted.
UIViewContentModeTop,
UIViewContentModeBottom,
UIViewContentModeLeft,
UIViewContentModeRight,
UIViewContentModeTopLeft,
UIViewContentModeTopRight,
UIViewContentModeBottomLeft,
UIViewContentModeBottomRight,
};

2. ##方法和说明
  * `-(void)addSubview:(UIView *)view;` 添加子控件
  * `-(void)removeFromSuperview;`   从父控件中移除当前控件
  * `-(void)insertSubview:(UIView *)view atIndex:(NSInteger)index;` 在指定位置插入子控件
  * `+(void)beginAnimations:(NSString *)animationID context:(void *)context;`   开始一段动画
  * `+(void)commitAnimations; `  结束一段动画,注意在开始和结束之间如果控件的某些属性发生变化iOS将以动画方式进行改变
  * `+(void)animateWithDuration:(NSTimeInterval)duration animations:(void (^)(void))animations NS_AVAILABLE_IOS(4_0);`  以block的形式执行一段动画,注意这个方法有几种相关的重载
  * `-(void)addGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer NS_AVAILABLE_IOS(3_2);`    添加手势操作
  * `-(void)removeGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer NS_AVAILABLE_IOS(3_2);` 移除手势操作

3. ##官方文档属性摘录

  **Configuring a View’s Visual Appearance**  视图的外表样式

  * `UIColor backgroundColor`   The view’s background color.  背景色
  * `BOOL hidden`  A Boolean value that determines whether the view is hidden.  是否隐藏
  * `CGFloat alpha`  The view’s alpha value.浮点数0.0~1.0,0代表透明,1代表不透明
  * `BOOL opaque`  A Boolean value that determines whether the view is opaque.  是否不透明
  * `UIColor tintColor`  The first nondefault tint color value in the view’s hierarchy, ascending from and starting with the view itself.  
  * `tintAdjustmentMode`  The first non-default tint adjustment mode value in the view’s hierarchy, ascending from and starting with the view itself.
  * `BOOL clipsToBounds`  A Boolean value that determines whether subviews are confined to the bounds of the view.
  * `BOOL clearsContextBeforeDrawing`  A Boolean value that determines whether the view’s bounds should be automatically cleared before drawing.
  * `UIView maskView`An optional view whose alpha channel is used to mask a view’s content.通道蒙版
  * `(class) layerClass`  The class used to create the layer for instances of this class.
  * `CALayer layer`  The view’s Core Animation layer used for rendering.  渲染的核心视图核心动画层,view是layer的代理

  **Configuring the Bounds and Frame Rectangles**  设置

  * `frame`  
The frame rectangle, which describes the view’s location and size in its superview’s coordinate system.
  * `bounds`
The bounds rectangle, which describes the view’s location and size in its own coordinate system.
  * `center`
The center of the frame.
  * `transform`
Specifies the transform applied to the receiver, relative to the center of its bounds.

  **Configuring the Event-Related Behavior**  配置事件关联行为

  *  `BOOL userInteractionEnabled`
A Boolean value that determines whether user events are ignored and removed from the event queue.
  * `multipleTouchEnabled`
A Boolean value that indicates whether the receiver handles multi-touch events.
  * `exclusiveTouch`
A Boolean value that indicates whether the receiver handles touch events exclusively.
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 9,460评论 0 23
  • PLEASE READ THE FOLLOWING APPLE DEVELOPER PROGRAM LICENSE...
    念念不忘的阅读 13,466评论 5 6
  • #孤单物品离别站# 每次来到正佳广场吃午餐晚餐,饭后的甜点一定是Hi百货,也就是在昨天晚上,依旧跟着这个程序走,却...
    wuli夹心阅读 341评论 0 0
  • 你 把四季的风景 幻成温柔的眸 深情凝视每一个愿望 她 却总是这样 高凌凌 冷冷地蔑笑 不如 把所有轻贱的柔情全丢...
    坤哥_b463阅读 204评论 0 0
  • 《康熙王朝》是由二月河的历史小说《康熙大帝》改编而成,所以剧情有多处与历史不符,但这也不能阻挡它成为一部优秀的历史...
    爱读书的仙女asd阅读 1,655评论 0 1