iOS UIView 基本属性用法

1.创建UIView

     UIView * redView = [[UIView alloc] initWithFrame:CGRectMake(10, 100, 200, 100)];

     UIView * blueView = [[UIView alloc] init];

      把blueView粘贴到了redView上

    [redView addSubview:blueView];

          redView 就是blueView 的父视图

       修改父视图属性 对子视图产生影响

2.设置隐藏

    redView.hidden = YES;//父视图隐藏子视图也会隐藏

3.如果子视图超出父视图范围是否裁剪子视图  默认是NO

    redView.clipsToBounds = YES;

4.是否可以和用户进行交互,默认为YES

    redView.userInteractionEnabled = YES;

    UIView 默认 YES

    /*

     如果可一个用户交互那么这个视图 可以接收点击,子视图也可以接收点击事件

     谁在在上方谁想接受点击 最上方的会拦截

     如果设置为NO 子视图和父视图都不能接受点击事件,那么这个点击就会向下层传递知道能被接受事件的控件接收 如果最后没有控件接受这个事件 事件将会被抛弃

        UILabel UIIImageView userInteractionEnabled默认是NO,不可以和用户进行交互

        如果button 粘贴到UILabel 和UIIImageView上 button是不能被点击

        如果想要能点击button 就要把UILabel 和 UIIImageView 的userInteractionEnabled改为YES

     */

5.确定父子视图关系之后我们就可以获取所有的子视图

    NSArray * subViews = redView.subviews;

6.获取子视图的父视图

    UIView * superView = blueView.superview;

7.判断一个视图是否是另外一个视图的子视图

    [button isDescendantOfView:redView];

8.在指定的索引位置插入一个子视图(这个函数也会把子视图粘贴到父视图上)

            如果指定的索引超出了 父视图对应的索引值 那么就会把这个子视图插在 最上层

        索引0 对应的就是最底层

    [self.view insertSubview:label4 atIndex:10];

9.在指定的某个子视图下方插入一个新的子视图

    [self.view insertSubview:label4 belowSubview:label1];

    

10.在指定的某个子视图上方插入一个新的子视图

    [self.view insertSubview:label4 aboveSubview:label1];

11.父视图 把指定的子视图 放到最前方

    [self.view bringSubviewToFront:label4];

12.父视图 把指定的两个视图进行交换

    [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:2];

13.父视图 把指定的子视图放到最底层

    [self.view sendSubviewToBack:label4];

14.可以通过设置中心点位置

    blueView.center = CGPointMake(100, 100);

15.通过bounds 改变 视图的边框大小

    blueView.bounds = CGRectMake(0, 0, 100, 100);

    //bounds 前两项一般是 0 0

    frame 和 bounds 区别

     1.frame 子视图相对于父视图的坐标系的坐标

     2.bounds 前两项的坐标是相对于自己坐标系的坐标

     3.如果把bounds 中的坐标改变了 那么就会影响自己的坐标系,那么最终能影响子视图

16.修改view的bounds会将redView的坐标系改变

    redView.bounds = CGRectMake(-50, -50, 200, 100);

17.view.transform

      1.CGAffineTransformMakeRotation 设置视图的旋转角度(这个角度相对最原始的位置)

     imagebutton.transform = CGAffineTransformMakeRotation(M_PI/4);           

          2.CGAffineTransformRotate函数相对于当前imagebutton.transform 旋转的角度

    imagebutton.transform = CGAffineTransformRotate(imagebutton.transform, M_PI/4);

 

18.CGAffineTransformMakeScale可以实现 放大 缩小 上下翻转 左右翻转

          都是相对最原始的状态进行变换

             CGAffineTransformMakeScale(x, y);

             x 控制x 方向的大小  1 原始大小 >1 x方向放大  <1 缩小

             y 控制 y方向 大小   1  原始大小 >1 y纵向放大  < 1缩小            

             x 是负数 表示相对于原始的位置 左右翻转 翻转180度

             x 是正数    原始的位置            

             y 负数  相对于原始的位置  上下翻转

             y 正数 就是最原始的位置

     imagebutton.transform = CGAffineTransformMakeScale(-2, 2);

19.动画

    [UIView animateWithDuration:0.25 animations:^{//执行的第一个动画

    } completion:^(BOOL finished) {//第一个动画结束时执行

    }]

20.设置父子视图自适应/停靠模式

    _redView.autoresizesSubviews = YES;//允许子视图伴随父视图自动变化

21.设置子视图的自适应模式

    blueView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin;

    /*

     UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,

     父子视图的左边距 会伴随父视图的宽度 增加而增加 减少而减少

     UIViewAutoresizingFlexibleWidth        = 1 << 1,

     //子视图的宽度会伴随父视图的宽度增加而增减 减少而减少

     UIViewAutoresizingFlexibleRightMargin  = 1 << 2,

     父子视图的右边距 会伴随父视图的宽度 增加而增加 减少而减少

     UIViewAutoresizingFlexibleTopMargin    = 1 << 3,

     父子视图的上边距 会伴随父视图的宽度 增加而增加 减少而减少

     UIViewAutoresizingFlexibleHeight       = 1 << 4,

     //子视图的高度会伴随父视图的高度增加而增减 减少而减少

     UIViewAutoresizingFlexibleBottomMargin = 1 << 5

     父子视图的下边距 会伴随父视图的宽度 增加而增加 减少而减少

     */

时间: 2024-10-25 06:47:00

iOS UIView 基本属性用法的相关文章

IOS中NSdate用法

// date方法返回的就是当前时间(now) 02. NSDate *date = [NSDate date]; 03.// now: 11:12:40 04.// date: 11:12:50 05. date = [NSDate dateWithTimeIntervalSinceNow:10];//返回当前时间10秒后的时间 06. // 从1970-1-1 00:00:00开始 07. date = [NSDate dateWithTimeIntervalSince1970:10];//

IOS中NSSarry用法

一.创建数组 // 创建一个空的数组 02.NSArray *array = [NSArray array]; 03.// 创建有1个元素的数组 04.array = [NSArray arrayWithObject:@"123"]; 05.// 创建有多个元素的数组 06.array = [NSArray arrayWithObjects:@"a", @"b", @"c", nil nil]; 07.NSArray *arr

IOS UIView圆角,阴影,边框,渐增光泽

圆角 sampleView.layer.cornerRadius = 2.5; // 圓角的弧度sampleView.layer.masksToBounds = YES; 阴影 sampleView.layer.shadowColor = [[UIColor blackColor] CGColor];sampleView.layer.shadowOffset = CGSizeMake(3.0f, 3.0f); // [水平偏移, 垂直偏移]sampleView.layer.shadowOpaci

ios UIView setFrame not working

ios UIView setFrame not working: 很奇怪吧,又不报错,打印frame正常,可就是frame set无效. 最简单的方法取interface builder 对该xib取消选择auto layout; ios UIView setFrame not working,布布扣,bubuko.com

IOS UIView(UIButton)通过显示动画移动的时候 响应点击的解决方案

今天在做一个UIButton显示动画的时候,遇到一个问题,就是在移动的时候 ,需要相应它的点击时间(click) 通过CAKeyframeAnimation 来移动UIButton的layer ,效果可以,但是就是无法点击. 解决方法: 将UIButton 的  userinterfaceenable 设置为NO 为UIButton的父view添加tap点击事件 点击事件实现如下 -(void)viewClicked:(UITapGestureRecognizer*)gesture { CGPo

iOS UIView动画详解(Objective-C)

我在之前的一篇博客中<iOS UIView动画详解(Swift)>讲解了使用Swift来实现UIView类下面提供的多种动画效果,如位置动画.旋转动画.缩放动画.颜色动画.透明度动画等等.为了这个题目的完整性,今天我使用Objective-C来完全重写以上的所有的动画.项目案例已经上传至:https://github.com/chenyufeng1991/iOS-UIView-Animation  中的Animation-OC文件夹下,另一个目录下则是Swift实现的动画. (1)位置动画 P

iOS中block用法之两个界面传值问题

Block的使用有很多方面,其中传值只是它的一小部分,但是很常用更实用,下面介绍Block在两个界面之间的传值用法: 先说一下思想: 首先,创建两个视图控制器,在第一个视图控制器中创建一个Label和一个Button,其中Label是为了显示第二个视图控制器传过来的字符串, Button是为了push到第二个界面. 第二个界面的只创建一个TextField,是为了输入文字,当输入文字并且返回第一个界面的时候(第二个视图将要消失的时候),就将这个 TextFiled中的文字传给第一个界面并且显示在

IOS NSUserDefaults 讲解 用法

IOS NSUserDefaults 讲解 用法 NSUserDefaults适合存储轻量级的本地数据,比如要保存一个登陆界面的数据,用户名.密码之类的,个人觉得使用NSUserDefaults是首选.下次再登陆的时候就可以直接从NSUserDefaults里面读取上次登陆的信息咯. 因为如果使用自己建立的plist文件什么的,还得自己显示创建文件,读取文件,很麻烦,而是用NSUserDefaults则不用管这些东西,就像读字符串一样,直接读取就可以了. NSUserDefaults支持的数据格

iOS popToViewController具体用法

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:1] animated:YES]; 或 searchBarViewController *searchBarVC = [[searchBarViewController alloc]init]; for (UIViewController *temp in self.navigationCo