day3---UIView

一 UIView
UIView是所有视图的父类,UIView的所有的属性和方法,其子类(所有的控件)都能直接使用’
1.1UIView的层次结构
见【Demo】-【1-SuperView SubView】
//1.获得当前视图的唯一父视图
NSLog(@"%@",view1.superview);
NSLog(@"%@",view2.superview);
NSLog(@"%@",view3.superview);

//2.获得视图的所有子视图
NSArray *array = superView.subviews;
NSLog(@"%@",array);

//1.在指定的层面插入一个新视图

// [superView insertSubview:view4 atIndex:1];
//2.在某个视图的下级插入一个新视图
// [superView insertSubview:view4 belowSubview:view3];
// 3.在某个视图的上级添加一个新视图
[superView insertSubview:view4 aboveSubview:view1];

//**************** 非常常用 ***********
//把指定的视图放在最上层(最前面)                     [********* 重点 *****]
[superView bringSubviewToFront:view1];

//把指定的视图放在最底层
[superView sendSubviewToBack:view3];

//交换两个视图的位置
[superView exchangeSubviewAtIndex:2 withSubviewAtIndex:3];


//判断一个视图是否是另一个视图的子视图  【了解】
BOOL isResult = [superView isDescendantOfView:self.window];




1.2UIView的事件接收注意事项:
    父视图不能接受事件(userInteractionEnabled是一个BOOL值,YES 可以响应用户交互,NO 不能响应)
        //UILabel默认为NO,UIImageView默认为NO  不能接受事件
    //    superView.userInteractionEnabled = NO; 修改对象是否能接受事件
    1)父视图不能接受事件,则子视图无法接受事件
    2)子视图超过父视图部分,不能接受事件
    3)同一个父视图下,最上面的视图,首先遭遇事件,如果能够响应,就不会向下传递事件,如果不能响应,事件向下传递。。。以此类推
    见【Demo】-【UIView-event】                            【重点】




1.3UIView自带的动画                              【**** 重点 **】
    见【Demo】-【3-UIViewAnimation】

UIView *view = (UIView *)[self.window viewWithTag:100];

//***************1.UIView自带动画的第一种方式
[UIView beginAnimations:nil context:nil];               //开始准备制作动画
//设置动画时间
[UIView setAnimationDuration:2];

if (_flag == NO) {
     view.frame = CGRectMake(300, 400, 50, 50);

// view.alpha = 0;
view.backgroundColor = [UIColor blackColor]; //中间过程
_flag = YES;
}else{
view.frame = CGRectMake(20, 20, 150, 150);
view.backgroundColor = [UIColor redColor];
// view.alpha = 1;
_flag = NO;
}
//设置动画效果
// view.frame = CGRectMake(300, 400, 50, 50);

[UIView commitAnimations];                              //提交动画


//*******************2.UIView自带动画的第二种方式
UIView *view = (UIView *)[self.window viewWithTag:100];
[UIView animateWithDuration:2 animations:^{
    //设置动画效果
    view.frame = CGRectMake(300, 480, 10, 10);
    
    //让视图做旋转或者缩放的动画效果
        view.transform = CGAffineTransformMakeRotation(M_PI);
    
}];

不停旋转的写法:
   NSTimer *_timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timerStart) userInfo:nil repeats:YES];
方法里面写:
UIView *view = (UIView *)[self.window viewWithTag:100];
view.transform = CGAffineTransformRotate(view.transform, M_PI/10);


1.4 停靠模式
    指的是控制父视图改变大小时,子视图随着父视图的大小的变化而变化;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初识iOS APP开发#### 在iOS APP开发中, main函数仍是程序的入口和出口, 但main函数不需要...
    DeanYan阅读 11,459评论 0 3
  • 一、初始化方法 1、- initWithFrame: UIView *view = [[UIView alloc]...
    默默_David阅读 7,338评论 1 3
  • 今天突然听说四舅妈走了!想起她以前的音容,还宛若在眼前,现今却走了,也不知道该怎样表达…… 四舅妈得病很久了,有成...
    三秋虫阅读 4,075评论 0 0
  • 一 白鹤 寨子,是一个土家小山寨,叫上寨。上寨往下,自然是下寨。寨名很随意。上寨往上,是西那枯(应该是土家话,音译...
    我馬虺隤阅读 3,369评论 0 1
  • Love is not easy……Falling in love again is even more diff...
    秦子木222阅读 1,241评论 0 2