UI-父视图和子视图之间的关系

//
//  ViewController.m
//  父控件与子控件

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    
    /**
     *  简单的介绍一些良好的编程规范
        设置frame 值的时候我们可以单独的将 变量从中抽取出来
        方便对每个值的单独操作 并且显得代码很干净
        如果操作多个控件,可以再次基础上进行修改 十分方便
     */
    CGFloat viewX = 0;
    CGFloat viewY = 0;
    CGFloat viewW = 100;
    CGFloat viewH = 100;
    /**
     *  这里创建了一个button 和一个view 
        分别添加到其相对应的父视图上
        这里讨论的一个问题是,父视图与子视图的关系
        父视图的大小会不会影响子视图的大小
        父视图和子视图之间还存在什么关系
     */
    self.view.backgroundColor = [UIColor cyanColor];
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.frame = CGRectMake( viewX+50, viewY+50, viewW, viewH);
    btn.backgroundColor = [UIColor orangeColor];
    [btn addTarget:self action:@selector(btnTouch) forControlEvents:UIControlEventTouchUpInside];
   
    /**
     我们要搞清楚视图之间的父子关系,方便我们对视图的操作 
     这里做了个小实验验证 父视图和子视图之间的关系 
     1.将view1添加到view上
     2.将btn 添加到view1上
     3.分别设置背景颜色方便我们的区分
     4.对按钮设置点击事件 并输出一句话 方便我们观察
     
     */
    UIView * view1 = [[UIView  alloc]init];
    view1.backgroundColor  = [UIColor redColor];
    view1.frame = CGRectMake(viewX, viewY, viewW, viewH);
    [view1 addSubview:btn];
    [self.view addSubview:view1];
    /**
     *  实验结果:
        俯视图的大小不会影响子视图的大小 
        子视图的大小不会发生变化 
        但是需要注意的是:
     我们对按钮添加了点击事件,一般的来说,点击按钮会触发按钮的点击事件,
     但是结果却和我们想的不是太一样,我们点击按钮的某一部分的时候,才会触发
    按钮的点击事件,我们可以观察到,我们点击的范围是限定在父视图内,也就是说
     按钮在父视图上的那一部分,点击按钮之后,会触发点击事件,而其他的范围是
     不会触发按钮的点击事件
     */
    
   // [btn addSubview:view];
    
    
}

-(void)btnTouch
{
    NSLog(@"按钮被点击");
}
- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值