精华内容
下载资源
问答
  • UIView的使用

    2016-10-14 10:52:56
    一切显示的视图控件都是uiview的子类,uiview有的属性,其子类也有。 视图在手机屏幕上的显示,在满足几个条件: 1 必须实例化 2 设置frame,即坐标(x坐标、y坐标),大小(长、宽),注意frame是针对其所在的...

    uiview 是视图,即显示在手机屏幕,能看得到的东西。

    一切显示的视图控件都是uiview的子类,uiview有的属性,其子类也有。

    视图在手机屏幕上的显示,在满足几个条件:

    必须实例化

    设置frame,即坐标(x坐标、y坐标),大小(长、宽),注意frame是针对其所在的父视图来设置的

    添加到父视图,即实现 addSubview 方法

    注意其隐藏属性hidden设置为NO(默认为NO,即可见),以及透明度alpha设置为1.0(默认为1.0,即不透明)


    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. // 实例化视图  
    2. UIView *view01 = [[UIView alloc] init];  
    3. // 设置背景颜色  
    4. view01.backgroundColor = [UIColor redColor];  
    5. // 坐标大小设置  
    6. view01.frame = CGRectMake(10.050.0100.0100.0);  
    7. // 隐藏属性,NO为显示,YES为隐藏,默认为NO  
    8. view01.hidden = NO;  
    9. // 透明度,取值范围0.0~1.0,默认为1.0  
    10. view01.alpha = 1.0;  
    11. // 视图tag值,相当房号,注意:tag值的设置通常都设置成大于1000,避免与系统控件的tag值重复,造成冲突  
    12. view01.tag = 1000;  

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. // 添加到父视图,即self.view父视图,添加到父视图才可见,否则不可见  
    2. [self.view addSubview:view01];  
    3. // 从父视图删除,删除后不可见  
    4. //    [view01 removeFromSuperview];  
    5.       
    6. // layer图层属性  
    7. // 圆角属性  
    8. view01.layer.cornerRadius = 10.0;  
    9. // 边框大小  
    10. view01.layer.borderWidth = 5.0;  
    11. // 边框颜色  
    12. view01.layer.borderColor = [UIColor yellowColor].CGColor;  
    13. // 图层遮罩(避免有时候圆角属性设置不成功)  
    14. view01.layer.masksToBounds = YES;  


    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. // 其他属性  
    2. // center中心坐标  
    3. view01.center = CGPointMake(self.view.center.x, view01.center.y); // 水平居中  
    4. //    view01.center = CGPointMake(view01.center.x, self.view.center.y); // 垂直居中  
    5. //    view01.center = self.view.center; // 父视图的正中间  
    6. // superview父视图  
    7. UIView *superView = view01.superview;  
    8. superView.backgroundColor = [UIColor brownColor];  
    9. NSLog(@"superView %@", superView);  
    10. // bounds大小,视图的大小,忽略坐标,即相对于视图自己来设置的  
    11. CGRect bounds = view01.bounds;  
    12. NSLog(@"bounds %@", NSStringFromCGRect(bounds));  
    13. // 子视图数组  
    14. NSArray *viewArray = self.view.subviews;  
    15. NSLog(@"viewArray %@", viewArray);  
    16.       
    17. UIView *view02 = [[UIView alloc] initWithFrame:CGRectMake(20.0200.0200.0200.0)];  
    18. view02.backgroundColor = [UIColor yellowColor];  
    19. [self.view addSubview:view02];  
    20. view02.tag = 1001;  
    21.       
    22. UIView *view03 = [[UIView alloc] initWithFrame:CGRectMake(10.010.060.060.0)];  
    23. view03.backgroundColor = [UIColor greenColor];  
    24. [view02 addSubview:view03];  
    25. view03.tag = 1003;  
    26.       
    27. UIView *view04 = [[UIView alloc] initWithFrame:CGRectMake(10.010.080.080.0)];  
    28. view04.backgroundColor = [UIColor purpleColor];  
    29. [view02 addSubview:view04];  
    30.       
    31. // 改变两个视图在父视图的位置  
    32. [view02 exchangeSubviewAtIndex:0 withSubviewAtIndex:1];  
    33.       
    34. UIView *view05 = [[UIView alloc] initWithFrame:CGRectMake(20.020.0100.0100.0)];  
    35. view05.backgroundColor = [UIColor redColor];  
    36. // 插入子视图到指定视图之上  
    37. [view02 insertSubview:view05 aboveSubview:view04];  
    38. // 把指定的子视图放在父视图的最后一层  
    39. [view02 sendSubviewToBack:view05];  
    40. // 把指定的子视图放在父视图的最前面  
    41. [view02 bringSubviewToFront:view05];  

    [objc] view plain copy
     在CODE上查看代码片派生到我的代码片
    1. // 简单动画  
    2. // 方法1  
    3. [UIView beginAnimations:@"view001" context:nil]; // 动画开始标识  
    4. [UIView setAnimationDuration:3.0]; // 动画时间  
    5. view01.frame = CGRectMake(10.0, CGRectGetHeight(self.view.bounds) - 50.0100.0100.0); // 动画效果  
    6. [UIView commitAnimations]; // 开始动画  
    7. // 方法2  
    8. [UIView animateWithDuration:3.0 animations:^{  
    9.         view01.frame = CGRectMake(10.0self.view.center.y100.0100.0); // 动画效果  
    10. }];  


    展开全文
  • UIView 的使用

    2017-12-08 09:55:45
    #pragma mark - /************************  getters setters view **************************/ /**  * setter getter view ...//============================" UIView  "=============================

    #pragma mark - /************************  getters setters view **************************/

    /**

     *  setter getter view

     */

    //============================"  UIView  "=============================


    //strong 创建view
    @property (nonatomic, strong) UIView *BgView;
    
    - (UIView *)BgView {
        if (_BgView==nil) {
            _BgView = [[UIView alloc] initWithFrame:CGRectMake(30, 20, SSWIDTH-60, 300)];
            _BgView.backgroundColor = Yellow_COLOR;
        }return _BgView;
    }
    //可以先添加,后调用
    [self.view addSubview:self.BgView];
    
    //weak 创建view
    @property (nonatomic, weak) UIView *BgView;
    - (UIView *)BgView {
        if (_BgView==nil) {
            UIView *BgView = [[UIView alloc] initWithFrame:CGRectMake(0, 64, SSWIDTH, 50)];
            [self.view addSubview:BgView];
            _BgView = BgView;
        }return _BgView;
    }
    //用self直接调用
    
    //添加多个 view
    - (void)addViewToSuperView:(UIView *)superView frame:(CGRect)frame tag:(NSInteger)tag
    {
        UIView *myView = [[UIView alloc] initWithFrame:frame];
        myView.tag= tag;
        [superView addSubview:myView];
        if (tag==111){
            _view1 = myView;
            
        }else if (tag==222){
            _view2 = myView;
            
        }else if (tag==333){
            _view3 = myView;
        }
    }


    // 自定义view

    
    - (instancetype)initWithFrame:(CGRect)frame {
        self = [super initWithFrame:frame];
        if (self) {
            self.backgroundColor = [UIColor clearColor];
     		//iOS设置父视图透明度而不影响子视图
            self.backgroundColor = [[UIColor lightGrayColor] colorWithAlphaComponent:0.1];
    		//TableView的背景
     	   self.view.backgroundColor = [UIColor groupTableViewBackgroundColor]; 
    	[self configUI];     
        }
        return self;
    }
    - (instancetype)init {
        self = [super init];
        if (self) {
    	[self configUI];
        }
        return self;
    }
    - (void)configUI {
     
    }
    
    



    展开全文
  • UIView的使用UIView 原理 1.它是一个iOS开发中非常重要的类。 UILabel,UIButton,UIImageView父类或间接父类都是UIView,换句话说只要是界面上能看到的东西都是UIView2.坐标系的属性和方法 @property(nonatomic) ...

    UIView的使用

    UIView 原理
    1.它是一个iOS开发中非常重要的类。
    UILabel,UIButton,UIImageView父类或间接父类都是UIView,换句话说只要是界面上能看到的东西都是UIView

    2.坐标系的属性和方法
    @property(nonatomic) CGRect frame;
    @property(nonatomic) CGRect bounds;
    @property(nonatomic) CGPoint center;
    @property(nonatomic) CGAffineTransform transform;
    //另:frame bounds center三个属性相互关联,改变其中一个,另两个也会改变。

    3.属性: 位置和大小, 背景颜色
    方法: 显示和隐藏
    把所有的控件的共同的属性和行为抽取出来, 形成了UIView视图类。
    (1)位置frame
    (2)背景颜色backgroundColor
    (3)透明度alpha
    (4)中心位置center
    (5)设置大小bounds
    (6)tag标签
    (7)是否交互userInteractionEnabled
    //是否与用户交互 默认YES
    view.userInteractionEnabled = YES;
    //UILabel UIImageView 默认交互是NO
    //UIButton 默认交互是YES
    (8)是否隐藏
    //是否隐藏 默认是NO 如果是YES 相当于alpha = 0 隐藏后按钮不能被点击
    view.hidden = NO;

    4.视图层次感
    【注】任何视图,都可以添加到另一个视图上面,但是每个视图只能有一个父视图。也就是说一个子视图被添加到另一个视图上,会从原父视图上脱离。
    【注】子视图的坐标是相对于父视图的。以父视图左上角一点为原点。移动父视图,因为子视图的位置是相对的,所以会一起移动。
    1.把view放在最上面bringSubviewToFront
    2.把view放在最下面sendSubviewToBack
    3.获取一个父视图superview(仅有一个)
    //superview 拿到某视图的父试图
    UIView *superView = redView.superview;
    4.获取子视图数组(可以有多个)
    //subviews拿到某视图所有的子视图
    NSArray *arr = self.view.subviews;
    5.销毁一个视图(removeFromSuperview)
    6.子视图插入insertSubview
    7.交换两个子视图(exchangeSubviewAtIndex)
    //父试图可以改变子试图的层级关系
    //把子试图放到最前面(上面)
    [self.view bringSubviewToFront:redView];

    //把子试图放到最后面(下面)
    [self.view sendSubviewToBack:greenView];
    
    //把某个子试图放到另一个子试图的上面
    [self.view insertSubview:greenView aboveSubview:redView];
    //把某个子试图放到另一个子试图的下面
    [self.view insertSubview:greenView belowSubview:redView];
    
    //把某个试图放到指定位置上
    [self.view insertSubview:blueView atIndex:4];
    
    //先添加的在最前面  数组元素的顺序是子视图显示的顺序
    NSLog(@"%@",arr);
    
    for (UIView * view in self.view.subviews) {
        if ([view isKindOfClass:[UIView class]]) {
            NSLog(@"是UIView");
        }else if ([view isKindOfClass:[UIButton class]]){
            NSLog(@"是按钮");
        }
    }
    
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(10, 10, 40, 10)];
    label.text = @"label";
    //任何视图都可以添加到任何试图上
    [redView addSubview:label];
    
    //把某视图从父视图移除 子试图调用这个方法 父试图不能主动移除子视图
    [redView removeFromSuperview];
    //如果这个试图移除了 它的子试图会一起移除
    

    5.UIView动画
    /————–非Block动画制作——————–/
    /*
    //UIView动画,由类方法驱动
    //从这里开始是动画的结果
    [UIView beginAnimations:nil context:nil];
    //设置延迟时间
    [UIView setAnimationDelay:15];
    //设置代理
    [UIView setAnimationDelegate:self];
    //设置代理回调的方法
    [UIView setAnimationDidStopSelector:@selector(completed)];
    //动画结束后,self要调用completed

    //设置动画执行时间
    [UIView setAnimationDuration:5];
    
    //动画可以修改任何UIView子类的坐标,大小,形变,色彩和透明度
    view.frame = self.window.bounds;
    view.backgroundColor = [UIColor greenColor];
    
    [UIView commitAnimations];
    //完成动画结果的设置,开始执行动画
    

    */

    /*-------------Block版本的动画效果------------------*/
    
    void (^animations)(void) = ^(void){
        view.frame = self.window.bounds;
        view.backgroundColor = [UIColor blueColor];
    };
    
    void (^completion)(BOOL) = ^(BOOL finished){
        NSLog(@"动画结束!");
    };
    
    [UIView animateWithDuration:5 delay:15 options: UIViewAnimationOptionLayoutSubviews animations:animations completion:completion];
    

    6.停靠模式
    【注】停靠模式,是控制父视图改变大小时,子视图的变化方式。
    【注】停靠模式并非服务于视图缩放,使用transform属性scale视图,根本是等比缩放。停靠模式是服务于父视图边界修改后,子视图的布局。
    //自动改变子试图的大小 默认是NO 设置成YES子试图会跟着父试图改变大小
    view.autoresizesSubviews = YES;

    //子试图的停靠模式
    subView.autoresizingMask = UIViewAutoresizingFlexibleHeight |UIViewAutoresizingFlexibleWidth;
    // ‘|’ 位运算符
    //    UIViewAutoresizingNone                 = 0,
    //    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,
    //  右边界和父视图的距离不变 左边界自由
    //    UIViewAutoresizingFlexibleWidth        = 1 << 1,
    //  自由的宽度
    //    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,
    //  左边界和父视图的距离不变 右边界自由
    //    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,
    //  下边界和父视图的距离不变 上边界自由
    //    UIViewAutoresizingFlexibleHeight       = 1 << 4,
    //  自由的高度
    //    UIViewAutoresizingFlexibleBottomMargin = 1 << 5
    //  上边界和父视图的距离不变 下边界自由
    
    展开全文
  • 1,UIView的setNeedsDisplay和setNeedsLayout方法 首先两个方法都是异步运行的。而setNeedsDisplay会调用自己主动调用drawRect方法。这样能够拿到 UIGraphicsGetCurrentContext,就能够画画了。而setNeed...
    1,UIView的setNeedsDisplay和setNeedsLayout方法
      首先两个方法都是异步运行的。而setNeedsDisplay会调用自己主动调用drawRect方法。这样能够拿到  UIGraphicsGetCurrentContext,就能够画画了。而setNeedsLayout会默认调用layoutSubViews。
     就能够  处理子视图中的一些数据。
    综上所诉,setNeedsDisplay方便画图。而layoutSubViews方便出来数据。
    layoutSubviews在下面情况下会被调用:
    1、init初始化不会触发layoutSubviews。
    2、addSubview会触发layoutSubviews。
    3、设置view的Frame会触发layoutSubviews。当然前提是frame的值设置前后发生了变化。
    4、滚动一个UIScrollView会触发layoutSubviews。


    5、旋转Screen会触发父UIView上的layoutSubviews事件。
    6、改变一个UIView大小的时候也会触发父UIView上的layoutSubviews事件。
    7、直接调用setLayoutSubviews。

    drawRect在下面情况下会被调用:
     1、假设在UIView初始化时没有设置rect大小,将直接导致drawRect不被自己主动调用。

    drawRect调用是在Controller->loadView, Controller->viewDidLoad 双方法之后掉用的.所以不用操心在控制器中,这些View的drawRect就開始画了.这样能够在控制器中设置一些值给View(假设这些View draw的时候须要用到某些变量值).
    2、该方法在调用sizeToFit后被调用,所以能够先调用sizeToFit计算出size。然后系统自己主动调用drawRect:方法。


    3、通过设置contentMode属性值为UIViewContentModeRedraw。那么将在每次设置或更改frame的时候自己主动调用drawRect:。
    4、直接调用setNeedsDisplay,或者setNeedsDisplayInRect:触发drawRect:,可是有个前提条件是rect不能为0。
    以上1,2推荐。而3,4不提倡

    drawRect方法使用注意点:
    1、若使用UIView画图,仅仅能在drawRect:方法中获取对应的contextRef并画图。

    假设在其它方法中获取将获取到一个invalidate的ref而且不能用于画图。drawRect:方法不能手动显示调用。必须通过调用setNeedsDisplay 或者 setNeedsDisplayInRect。让系统自己主动调该方法。
    2、若使用calayer画图,仅仅能在drawInContext: 中(相似于drawRect)绘制。或者在delegate中的对应方法绘制。相同也是调用setNeedDisplay等间接调用以上方法
    3、若要实时画图,不能使用gestureRecognizer,仅仅能使用touchbegan等方法来掉用setNeedsDisplay实时刷新屏幕

    转载于:https://www.cnblogs.com/llguanli/p/8690334.html

    展开全文
  • 对于上一篇提到的关于UIView的使用,其实不一定非要替换当前的view,可以在原有的view上添加对应的view就可以。 也可以添加到窗口当中,使用addsubview方法,而不是直接替换view的方法,这样的方法便显得更加的...
  • UIVIew的使用大全

    2015-04-13 17:11:12
    - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{  /** 获取事件event中触发视图*/  UIView *hitView = [superhitTest:pointwithEvent:event];  /** 判断是否当
  • swift中UIView的使用

    千次阅读 2016-09-28 15:00:12
    let view = UIView(frame: CGRectMake(10.0, 10.0, 200.0, 200.0)) // 添加到父视图 self.view.addSubview(view) // 背景颜色 view.backgroundColor = UIColor.redColor()// layer层属性设置
  • UIView的使用注意点

    2016-07-26 14:59:00
    为什么80%码农都做不了架构师?>>> ...
  • UIWindow 和 UIView 的使用,视图的层次结构,屏幕的缩放、旋转与平移,简单的视图动画,frame和Bounds
  • swift -UIView的使用

    千次阅读 2015-08-14 08:08:51
    //这里是标签内容,将oc 中标签来拿使用 let rect = CGRect(x:0,y:100,width:320,height:44); myLabel = UILabel(frame: rect); myLabel!.text = "百度";//表示为空也可以去创建 //把myLabel 对象加入到self....
  • * 当一个控件frame发生改变时候就会自动调用 * 一般在这里布局内部子控件(设置子控件frame) * 一定要调用superlayoutSubviews方法 1.2 - (void)didMoveToSuperview; * 当一个控件被添加到父控件中就...
  • 初始化做事情只是创建一些组件,而不去设置尺寸,所有组件尺寸放在下面这个方法中去做: - ( void )layoutSubviews {   float offset = 0.f ;   if ( self . bounds . size . height >...
  • UIView autoresizing使用

    2014-09-28 11:30:46
    当子控件需要跟随父控件的大小变化的时候 可以使用UIView的autoresizing
  • UIView的基本使用

    千次阅读 2018-05-24 17:46:05
    下面我来为大家介绍一下UIView的一些常用属性和它们的用法。这里附上UI控件演示的源码地址:https://github.com/LOLR2017/UIKitDemo。源码持续更新中...因为部分代码是从Xcode直接拷贝出来的样式有误请谅解。下面是...
  • UIView动画的使用

    2019-09-29 21:25:36
    下面介绍三种简单的UIView动画的使用,如果在项目中对动画没有太多“细致化”的设计要求,基本够用了。 一、首尾式动画 说明:如果只是修改控件的属性,使用首尾式动画还是很方便的,如果还需要在动画完成后有...
  • 这个很自然就想到了两个方法:第一个就是将图片进行裁剪,第二个就是根据uiview的contentmode;一开始是根据uiview的contentmode进行设置,不过由于没有好好理解就选择对图片进行裁剪这个方式。但是后来发现,由于...
  • uiview动画使用案例

    2016-09-08 09:42:35
    ios中是实现uiview的移动和消失的方法
  • UIView属性的使用

    2015-09-29 23:18:49
    1.创建UIView UIView = *aView = [UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];2.设置(可选) aView.backgroundColor = [UIColor orangeColor];3.添加到 window [self.window addSubview:aView];4....
  • UIView,UIViewController的使用

    千次阅读 2018-10-31 14:49:31
    UIView,UIViewController的使用 ...UIView的介绍与使用 UIViewController的介绍与使用 控件之间的继承关系 UIView UIView表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为iOS中几乎所有可视...
  • UIView的基本使用方法

    2015-11-26 19:45:00
    //视图上的所有可视控件都是UIView和UIView的子类 //1.创建一个View UIView *view = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)]; //2.设置view的背景颜色 view.backg...
  • 主要介绍了IOS 开发之swift中UIView的扩展使用的实例的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
  • UIView animateWithDuration 使用详解 发表于2012 年 3 月 4 日 ...当然,以往的begin/commit的方法依然使用,下面详细解释一下animateWithDuration的使用方法。 函数原型: + (void)...
  • UIView的概念与使用

    2019-09-29 16:03:35
    什么是UIView UIView可以称之为控件/视图 ...苹果将拥有共同属性控件对象抽取出了UIView类,所有控件均继承自UIView类 父控件与子控件 每一个控件其实都是一个容器,可以将其他控件放到该控件...
  • UIView的详细用法

    2015-11-03 16:33:00
    UIView的使用 1.UIView创建和使用 //重要性: (1)常见控件父类或间接父类都是UIView UILabel->UIView UIImageView->UIView UIButton->UIControl->UIView (2)自定义控件 //继承与UIView, view...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,127
精华内容 2,050
关键字:

uiview的使用