UI基础之UIView

MVC:是一种设计模式

M(model):存储数据

V(view) :展示数据 (UIView)

C(controler):用来衔接MVC,作为M和V之间的桥梁,负责数据的处理和传递等等 (UIViewController)

CGPoint:用来设置坐标;

CGSize: 用来设置尺寸;

CGRect: 用来设置坐标和尺寸;

frame:以父视图作为参考系,

和bounds:以自身作为参考系,坐标始终是(0,0)

@property (strong, nonatomic) UIWindow *window;

//在应用程序代理中实例化,一个窗口,多个视图,app只有一个UIWindow,UIWindow是根基

//创建一个自己的view

CGRect frame2=CGRectMake((375-150)/2.0,(667-150)/2.0 , 150, 150);

UIView *view=[[UIView alloc] initWithFrame:frame2];

//将当前视图添加到window上面才能显示

[self.window addSubview:view];

//为当前视图设置背景色

view.backgroundColor=[UIColor grayColor];

//定义一个人根视图

_rootView=[[UIView alloc]initWithFrame:CGRectMake(0, 0, kwidth, kheight)];

_rootView.backgroundColor=[UIColor grayColor];

[self.window addSubview:_rootView];

//

UIView *view1=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 200, 200)];

//可用tag值来找到相应视图

view1.tag=1001;

view1.backgroundColor=[UIColor redColor];

[_rootView addSubview:view1];

UIView *view2=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 150, 150)];

view2.tag=1002;

view2.backgroundColor=[UIColor blackColor];

[_rootView addSubview:view2];

//获取所有子视图

NSArray *subviews=[_rootView subviews];

NSLog(@"%@",subviews);

//remove移除子视图

//    [view2 removeFromSuperview];

UIView *view3=[[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];

view3.tag=1003;

view3.backgroundColor=[UIColor greenColor];

[_rootView addSubview:view3];

//

UIView *view4=[[UIView alloc] initWithFrame:CGRectMake(0, 0, 160, 160)];

view4.backgroundColor=[UIColor yellowColor];

//    [_rootView insertSubview:view4 atIndex:1];

//    [rootView insertSubview:view4 aboveSubview:view1];

//    [rootView insertSubview:view4 belowSubview:view2];

//    [rootView bringSubviewToFront:view1]; 图层移到最顶层

//    [rootView sendSubviewToBack:view4];   图层移到最底层

//0是子视图第一层

//    [rootView exchangeSubviewAtIndex:2 withSubviewAtIndex:0];

//    把两个索引对应的视图调换位置

UIViewController *vc=[[UIViewController alloc] init];

self.window.rootViewController=vc;

return YES;

}

//点击空白处触发

- (void) touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{

//获取所有子视图

NSArray *subView= _rootView.subviews;

//取出所有子视图的第一个

//    UIView *lastView=[subView lastObject];

//    UIView *firstView=[subView firstObject];

//每次将第一移动到最后

//    [_rootView sendSubviewToBack:lastView];

//每次点击第一个和最后一个互换

//    [_rootView exchangeSubviewAtIndex:0 withSubviewAtIndex:subView.count-1];

//通过tag值来控制颜色变化

UIView *view=[_rootView viewWithTag:1003];

//    view.backgroundColor=[UIColor blackColor];

//改变透明度

//    view.alpha-=0.1;

//方法一隐藏掉,而不是remove掉,还存在

//    view.alpha=0;

//方法二

//[view removeFromSuperview];

//方法三

//view.alpha=1-view.alpha;

//方法四

//    if (view.hidden==YES) {

//        view.hidden=NO;

//    }else{

//        view.hidden=YES;

//    }

//方法五

//    view.hidden=!view.hidden;

时间: 2024-07-29 19:17:15

UI基础之UIView的相关文章

ios开发-UI基础-超级猜图

[注意]转载时请注明出处博客园-吃唐僧肉的小悟空http://www.cnblogs.com/hukezhu/ 本篇文章介绍一个比较综合的小应用----超级猜图. 功能分析: 根据显示的图片,在下面的待选项按钮中选中正确答案按钮,选中的按钮会显示在正确答案按钮中 答案错误,答案颜色变为红色,分数减小 答案正确,答案颜色变为蓝色,两秒自动跳入下一题,分数增加 点击"下一题"可以进入下一个题目 点击"大图",可以放大显示图片,再次点击图片或者背景,图片缩小至原来大小 点

ios开发-UI基础-应用管理(单纯界面)

功能分析 以九宫格的形式展示应用信息 点击下载按钮后,做出相应操作(弹出一个提示"正在下载",相应应用的下载按钮变为"已下载") 步骤分析 搭建UI界面 加载应用信息 根据应用的个数创建对应的view 监听下载按钮的点击 应用截图: 这个小的综合实例涉及到的知识点: UIView的常见属性和方法 九宫格的计算方法 字典转模型 xib的使用 view的封装 简单的MVC 九宫格分析: 搭建九宫格的步骤 明确每一块用的是什么view 明确每个view之间的父子关系 先尝

ios开发-UI基础-应用管理(单纯界面)改进5-使用代理实现监听下载按钮的点击(delegate)

[注意]转载时请注明出处博客园-吃唐僧肉的小悟空http://www.cnblogs.com/hukezhu/ 前几篇文章介绍了一个应用管理的小应用,从最开始的单纯实现功能,一步一步就行改进\封装,上篇文章是使用xib进行了优化,本篇文章使用代理实现监听下载按钮的点击. 在原来的基础上,使用代理的主要思路分析: 首先要新建一个协议 声明协议的要实现的方法(一般为optional) 声明一个遵守该协议的代理的属性 使用代理,通知其代理完成操作 在代理中的实现步骤: 遵守协议 设置代理(一般通过拖线

UI基础控件UIButton

一:UI基础 Button控件 1,简单说明:UIView和UIViewController间的关系 一个应用并不一定要有UIViewController,但是为了管理界面事件(比如按钮点击事件)一般我们在创建应用时要先创建控制器,控制器拥有一个UIView属性. UIView用来展示数据.及用户输入数据.监听事件的触发(比如按钮的touchupinside事件) 而控制可以用来处理这些事件,赋值UIView的管理. 按钮可以展示文字和图片,也就是说按钮具有这些属性. 2,按钮的三种状态 nor

IOS开发UI基础—在UIImageView中添加按钮以及Tag的参数说明

ios开发UI基础-在ImageView中添加按钮以及Tag的参数说明 一.tag参数 一个视图通常都只有一个父视图,多个子视图,在开发中可以通过使用子视图的tag来取出对应的子视图.方法为Viewwithtag: 提示点:在xib中如果想要通过tag参数获取对应的控件(属性),不要把tag的参数设置为0,因为xib中所有的对象默认tag都为0,设置为0取不到对象. 二.ImageView中添加按钮(1)ImageView和Button的比较 Button按钮的内部可以放置多张图片(4),而Im

iOS开发UI基础—xib的简单使用

iOS开发UI基础-xib的简单使用 一.简单介绍 xib和stotyboard的比较,一个轻量级一个重量级. 二.xib的简单使用 1.建立xib文件 建立的xib文件命名为appxib.xib 2.对xib进行设置 根据程序的需要,这里把view调整为自由布局 建立view模型(设置长宽等参数) 调整布局和内部的控件 完成后的单个view 3.使用xib文件的代码示例 YYViewController.m文件代码如下: 1 // 2 // YYViewController.m 3 // 10

UI基础(九)之自动布局

根据需要,只针对Masonry约束展开讨论. 当然说到自动布局包括:1.MagicNumber 2.autoresizingMask 3.autolayout 前两种基本上不用了,主要就是第三种 Autoresizing:这种布局不用解释太多了,有可能会被用到,就是一些很老的项目维护的时候会用到,在SB中就是那六根线的来回布局,局限性就是只能设置当前控件与父控件的位置关系,不能设置同等级别的位置关系,所以比较鸡肋 至于代码设置还是看一下第十天UI基础的资料吧. 重点说一下自动布局的autolay

iOS开发UI基础—transframe属性(形变)

iOS开发UI基础-transframe属性(形变) 1. transform属性 在OC中,通过transform属性可以修改对象的平移.缩放比例和旋转角度 常用的创建transform结构体方法分两大类 (1) 创建"基于控件初始位置"的形变 CGAffineTransformMakeTranslation(平移) CGAffineTransformMakeScale(缩放) CGAffineTransformMakeRotation(旋转) (2) 创建"基于trans

OS开发UI基础—手写控件,frame,center和bounds属性

OS开发UI基础—手写控件,frame,center和bounds属性 一.手写控件 1.手写控件的步骤 (1)使用相应的控件类创建控件对象 (2)设置该控件的各种属性 (3)添加控件到视图中 (4)如果是button等控件,还需考虑控件的单击事件等 (5)注意:View Contollor和view的关系 2.注意点 在OC开发中,Storyboard中的所有操作都可以通过代码实现,程序员一定要熟练掌握代码布局界面的能力! 设置控件监听方法的示例代码如下: [btn addTarget:sel