美文网首页
UIKit之UIView

UIKit之UIView

作者: MI移动 | 来源:发表于2017-07-20 09:38 被阅读0次
#import "TestController.h"

@interface TestController ()

@property (strong, nonatomic)UIView *view1;
@property (strong, nonatomic)UIView *view2;

@end

@implementation TestController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    // 添加视图
    // 1. 把视图view1 插入view2的上面
    [self.view insertSubview:self.view1 aboveSubview:self.view2];
    // 2. 把视图view2 插入view的下面
    [self.view insertSubview:self.view1 belowSubview:self.view2];
    // 3. 把视图view2 插入索引是1的位置
    [self.view insertSubview:self.view2 atIndex:1];
    
    // 视图层次操作
    // 4. 把view2移到最前面
    [self.view bringSubviewToFront:self.view2];
    // 5. 把view2移到最后面
    [self.view sendSubviewToBack:self.view2];
    // 6. 根据索引交换两个视图
    [self.view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
    
    // 移除视图
    // 7. 从父视图移除
    [self.view2 removeFromSuperview];
    
    // 1. 隐藏
    self.view1.hidden = YES;
    // 2. 设置透明度
    self.view1.alpha = 0.5;
    // 3. 获取所有子视图
    NSArray *arr = self.view.subviews;
    // 4. 获取父视图
    UIView *superView = self.view1.superview;
    // 5. 给视图添加标签(被添加标签的view可以通过viewWithTag:方法获取)
    self.view1.tag = 100;
    UIView *tagView = [self.view viewWithTag:100];
}
#pragma mark - lazyload
- (UIView *)view1{
    if (!_view1) {
        _view1 = [UIView new];
        _view1.backgroundColor = [UIColor redColor];
        [self.view addSubview:_view1];
        [_view1 mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.top.offset(100);
            make.size.mas_equalTo(CGSizeMake(100, 100));
        }];
    }
    return _view1;
}

- (UIView *)view2{
    if (!_view2) {
        _view2 = [UIView new];
        _view2.backgroundColor = [UIColor blueColor];
        [self.view addSubview:_view2];
        [_view2 mas_makeConstraints:^(MASConstraintMaker *make) {
            make.left.top.offset(200);
            make.size.mas_equalTo(CGSizeMake(100, 100));
        }];
    }
    return _view2;
}

@end

Frame 和 Bounds

  • iPhone屏幕左上角 为我们开发时 frame原点
  • 但是当有子视图时,子视图的原点是其父视图的point
  • frame 是一个包含 位置point(x,y)和宽高size(width,height)的结构体
  • bounds 是以父类视图的point为原点创建的一个坐标系
// point
CGPoint point = CGPointMake(100, 100);
NSLog(@"%@",NSStringFromCGPoint(point));
NSLog(@"%f",point.x);

// size
CGSize size = CGSizeMake(100, 100);
NSLog(@"%@",NSStringFromCGSize(size));
NSLog(@"%f",size.height);

// frame
CGRect rect = CGRectMake(100, 100, 100, 100);
NSLog(@"%@",NSStringFromCGRect(rect));
NSLog(@"%@",NSStringFromCGRect(view.frame));
NSLog(@"%f",rect.origin.x);

// center:(表示view视图的中心点) 其坐标根据父视图的原点而定
NSLog(@"%@",NSStringFromCGPoint(view.center));

相关文章

  • UIKit之UIView

    Frame 和 Bounds iPhone屏幕左上角 为我们开发时 frame原点 但是当有子视图时,子视图的原...

  • IOS动画之UIView动画

    UIView之属性动画 UIKit直接将动画集成刀UIView类中,当内被的一些属性发生改变时,UIView可以为...

  • UIKit-View相关

    UIKit-View前言 UIView特殊的UIView:UIWindowUIControlUIButtonUIS...

  • UIKit - UIView

    给 UIView 设置图片 自定义视图 为什么要在 initWithFrame: 方法初始化m而不是在 init ...

  • swift 编程

    UIView import UIKit @UIApplicationMain class AppDelegate:...

  • UIKit 扩展系列之 UIView

    前言   对 iOS 熟悉的同学应该都知道,在开发的过程中,我们经常会创建一些扩展来封装一些常用的代码块以便我们快...

  • uiview和calayer

    从框架来说 CALayer基于 QuartzCore 框架UIView 基于 UIKit 框架 UIView可以响...

  • UIScrollView的contentSize、content

    在iOS中,UIScrollView(继承UIKit.framework重的UIView)是UIKit.frame...

  • 响应者链

    UIResponder 在UIKit中,UIApplication、UIView、UIViewController...

  • iOS面试题整理

    @[toc] UIKit 1.UIView 和 CALayer 是什么关系? UIView 继承 UIRespon...

网友评论

      本文标题:UIKit之UIView

      本文链接:https://www.haomeiwen.com/subject/knirkxtx.html