UI3_UIView自动布局

//
//  ViewController.m
//  UI3_UIView自动布局
//
//  Created by zhangxueming on 15/7/1.
//  Copyright (c) 2015年 zhangxueming. All rights reserved.
//

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    //自动布局

    CGFloat size = self.view.frame.size.width-300;
    UIView *view = [[UIView alloc] initWithFrame:CGRectMake(150, 200, size, size)];
    view.backgroundColor = [UIColor orangeColor];
    //打开子视图自动布局
    view.autoresizesSubviews = YES;
    //
    //UIViewAutoresizingNone                 = 0,//就是不自动调整
//    UIViewAutoresizingFlexibleLeftMargin   = 1 << 0,//自动调整与superView左边的距离,保证与superView右边的距离不变。
//
//    UIViewAutoresizingFlexibleWidth        = 1 << 1,//自动调整自己的宽度,保证与superView左边和右边的距离不变
//    UIViewAutoresizingFlexibleRightMargin  = 1 << 2,//自动调整与superView的右边距离,保证与superView左边的距离不变。
//
//    UIViewAutoresizingFlexibleTopMargin    = 1 << 3,//自动调整与superView顶部的距离,保证与superView底部的距离不变。
//    UIViewAutoresizingFlexibleHeight       = 1 << 4,//自动调整自己的高度,保证与superView顶部和底部的距离不变。
//    UIViewAutoresizingFlexibleBottomMargin = 1 << 5//自动调整与superView底部的距离,也就是说,与superView顶部的距离不变。

    //设置tag值
    view.tag =100;
    //自动剪裁
    view.clipsToBounds = YES;

    [self.view addSubview:view];

    UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(5, 5, size-10, size-10)];

    topView.backgroundColor = [UIColor greenColor];

    //设置子视图与父视图的四周距离都保持一致
    topView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight;

    [view addSubview:topView];

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
    btn.frame = CGRectMake(100, 400, self.view.frame.size.width-200, 30);
    btn.backgroundColor = [UIColor cyanColor];
    [btn setTitle:@"点击" forState:UIControlStateNormal];
    [btn addTarget:self action:@selector(btnClicked) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:btn];
}

//修改父视图的frame
- (void)btnClicked
{
    UIView *view = [self.view viewWithTag:100];

    CGRect frame = CGRectMake(view.frame.origin.x-1,view.frame.origin.y-1,view.frame.size.width+2, view.frame.size.height+2);
    view.frame = frame;
}

- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
时间: 2024-11-02 02:03:44

UI3_UIView自动布局的相关文章

SDAutoLayout:比masonry更简单易用的自动布局库

SDAutoLayout:一行代码搞定自动布局!支持Cell和Tableview高度自适应,Label和ScrollView内容自适应,致力于做最简单易用的AutoLayout库. [SDAutoLayout 视频教程:http://www.letv.com/ptv/vplay/24038772.html] ☆新增:cell高度自适应 + label文字自适应☆ >>>>> tableview cell 自动高度设置只需要3步 1. >> 设置cell高度自适应:

ios-AutoLayout(自动布局代码控制)简单总结

转自:http://blog.sina.com.cn/s/blog_7c336a830102vaht.html 原理:IOS6.0 之后,苹果优化了UI界面的布局方式,提出了自动布局的概念,和之前的autoresizing相比功能更强大.子视图基于父视图的自动布局显示.都是父视图去添加对子视图的约束. 在这里主要说的是通过代码对自动布局视图的实现. 代码中一般用到的有两个添加约束的方式: 1.- (void)addConstraint:(NSLayoutConstraint *)constrai

自动布局

Autolayout是一种“自动布局”技术,专门用来布局UI界面 Autolayout能很轻松地解决屏幕适配问题 Autolayout的两条核心概念: >1 参照:通过参照其他控件或父控件来设置当前控件地位置和大小 >2 约束Constraints(规则):通过添加约束限制控件地位置和大小 代码实现Autolayout的步骤: 1. 利用NSLayoutConstraint类创建具体的约束对象 2. 添加约束对象到相应的view上 - (void)addConstraint:(NSLayout

轻量级应用开发之(06)Autolayout自动布局

一 什么是Autolayout Autolayout是一种“自动布局”技术,专门用来布局UI界面的. 自IOS7 (Xcode 5)开始,Autolayout的开发效率得到很大的提高. 苹果官方也推荐开发者尽量使用Autolayout来布局UI界面. Autolayout能很轻松的解决屏幕适配的问题. 1. 关闭自动布局 打开面板(Main.storyboard)-> 点击 View Controller -> 取消 Use Auto Layout . 默认是  302 * 520 的尺寸,

使用第三方框架 Masonry 实现自动布局

使用第三方框架 Masonry 实现自动布局 时间:2015-02-10 11:08:41      阅读:4595      评论:0      收藏:0      [点我收藏+] 由于前两天都在学习自动布局的使用,但是又觉得苹果原生的方式太过于麻烦,而且也不易于理解,昨天听人说了有个第三方框架也可以实现自动布局的功能,然后在https://github.com/上找到了Mansonry这个框架,使用起来真的减少了很多时间,而且代码直观,更加容易理解. 送上源码地址:https://githu

iOS 自动布局扩展应用:代码中动态调整布局常量

一.设计需求 iOS Storyboard 自动布局技术,是iOS 6才出来的新技术,相当于多屏幕分辩率下自适应的技术. 但是一些复杂情况还是难处理. 比如有一个界面需求,进度条上显示标签,这个需求不难,难的是显要在显示表格框内,在各种机型显示正常. 最初设定是垂直居中向上偏15个像素 这是iPhone 4S 显示效果,下面与滑块还有错位 但是在iPhone 6下显示,下面有错位,但是上面留空太多 但如果把偏移量设为21.则出现另一种情况. 大屏幕的手机显示完美. 但是iPhone 4S下就错位

使用第三方框架 Keep Layout 实现简单的自动布局

之前有写了一篇Masonry实现自动布局的随笔,今天无聊的时候又发现了另外一个自动布局的第三方框架Keep Layout,使用起来感觉比Masonry简单一点,相比之下容易理解? 附上源码地址:https://github.com/iMartinKiss/KeepLayout 关于一些属性的介绍: 属性间的关系以及优先级: 更多内容请参考网站说明. 附上简单自动布局的代码以及效果图: 1 - (void)viewDidLoad { 2 [super viewDidLoad]; 3 // Do a

iOS自动布局

一开始用VFL语言都是这样实现自动布局的,一两个控件还好,多几个控件简直不能忍. _backgroundImageView = [[UIImageView alloc] init]; _backgroundImageView.backgroundColor = [UIColor clearColor]; _backgroundImageView.translatesAutoresizingMaskIntoConstraints = NO; [self addSubview:_background

(翻译)开始iOS 7中自动布局教程(二)

这篇教程的前半部分被翻译出来很久了,我也是通过这个教程学会的IOS自动布局.但是后半部分(即本篇)一直未有翻译,正好最近跳坑翻译,就寻来这篇教程,进行翻译.前半部分已经转载至本博客,后半部分即本篇.学习IOS自动布局的朋友可以看看.自动布局很强大. 这篇教程绝对的最好的学习IOS自动布局的文章,没有之一 原文地址:Beginning Auto Layout Tutorial in iOS 7: Part 2 正文如下: 请注意: 团队成员Matthijs Hollemans (IOS学徒系列的作