首页 > 其他 > 详细

UIView的自适应(代码实现)

时间:2015-09-25 07:19:34      阅读:186      评论:0      收藏:0      [点我收藏+]

最近看了一下有关UIView自适应的视频,看完后自己也测试了一下。对于一直只是在storyboard和xib中直接做约束的我来说,这个还是挺受用的。拿出来跟大家分享一下。。。

效果:(代码中只对大的view的frame进行的修改,但是view的子视图的frame跟着改变)

技术分享技术分享技术分享

这段代码大概是现实的是每点击button一次的时候,view的frame改变,然后view1的frame也会跟着变化,但是view1是受view的约束的。

实现方式(在写好两个view的基础上,其中view1是添加在view上):

第1步:

设置view的autoresizesSubviews为YES, 即:view.autoresizesSubviews = YES;允许子视图自适应。

第二步:

设置view1的autoresizingMask

即:

view1.autoresizingMask = UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleWidth|

        UIViewAutoresizingFlexibleHeight;

我这里是选择了多种autoresizingMask的类型,你们可以根据自己的实际情况去设置,可以每个试一下。

 

- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];

    view.backgroundColor = [UIColor yellowColor];

    view.autoresizesSubviews = YES;

    view.tag = 1001;

    [self.view addSubview:view];

 

    UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(25, 25, 50, 50)];

    view1.backgroundColor = [UIColor redColor];

    view1.autoresizingMask = UIViewAutoresizingFlexibleRightMargin|UIViewAutoresizingFlexibleLeftMargin|UIViewAutoresizingFlexibleTopMargin|UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleWidth|

        UIViewAutoresizingFlexibleHeight;

    [view addSubview:view1];

    

    UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];

    button.frame = CGRectMake(10, 600, 355, 30);

    button.backgroundColor = [UIColor blackColor];

    [button addTarget:self action:@selector(buttonAction:) forControlEvents:(UIControlEventTouchUpInside)];

    [self.view addSubview:button];

    

}

 

- (void)buttonAction:(UIButton*)sender

{

    UIView *view = [self.view viewWithTag:1001];

    view.frame = CGRectMake(view.frame.origin.x-5, view.frame.origin.y-5, view.frame.size.width+10, view.frame.size.height+10);

}

UIView的自适应(代码实现)

原文:http://www.cnblogs.com/cityingma/p/4837075.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!