IOS(UI)_AutoLayout(自动布局)01
来源:互联网 发布:linux 局域网 编辑:程序博客网 时间:2024/06/03 21:33
- (void)viewDidLoad { [super viewDidLoad]; UIView *view1=[UIView new]; view1.backgroundColor=[UIColor redColor]; view1.translatesAutoresizingMaskIntoConstraints=NO; view1.tag=1000; [self.view addSubview:view1]; NSLayoutConstraint *constraint1=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:20]; [self.view addConstraint:constraint1]; NSLayoutConstraint *constraint2=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:20]; [self.view addConstraint:constraint2]; NSLayoutConstraint *constraint3=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTrailing multiplier:1 constant:-20]; [self.view addConstraint:constraint3]; NSLayoutConstraint *constraint4=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeHeight multiplier:0.5 constant:0]; [self.view addConstraint:constraint4]; }
横屏时:
竖屏时:
如何判断横竖屏:
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; UIView *view1=[UIView new]; view1.backgroundColor=[UIColor redColor]; view1.translatesAutoresizingMaskIntoConstraints=NO; view1.tag=1000; [self.view addSubview:view1]; NSLayoutConstraint *constraint1=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeading relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeading multiplier:1 constant:20]; [self.view addConstraint:constraint1]; NSLayoutConstraint *constraint2=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:20]; [self.view addConstraint:constraint2]; NSLayoutConstraint *constraint3=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeTrailing relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTrailing multiplier:1 constant:-20]; [self.view addConstraint:constraint3]; NSLayoutConstraint *constraint4=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeHeight multiplier:0.5 constant:0]; [self.view addConstraint:constraint4]; }//检测横竖屏//是否支持横竖-(BOOL)shouldAutorotate{ return YES;//支持横屏}//支持几种朝向-(UIInterfaceOrientationMask)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskAllButUpsideDown;//home键向上}-(void)viewWillLayoutSubviews{ [super viewWillLayoutSubviews]; UIView *view=(UIView *)[self.view viewWithTag:1000]; <p style="margin-top: 0px; margin-bottom: 0px; line-height: normal; font-family: Menlo;"><span style="font-size:10px;"> switch ([UIDevice currentDevice].orientation)</span></p><p style="margin-top: 0px; margin-bottom: 0px; line-height: normal; font-family: Menlo;"><span style="font-size:10px;"> {</span></p><p style="margin-top: 0px; margin-bottom: 0px; line-height: normal; font-family: Menlo;"><span style="font-size:10px;"> case UIDeviceOrientationPortrait:</span></p><p style="margin-top: 0px; margin-bottom: 0px; line-height: normal; font-family: Menlo;"><span style="font-size:10px;"> {</span></p> view.backgroundColor=[UIColor greenColor]; [self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; view.layer.masksToBounds = YES;<span style="white-space:pre"></span><p style="margin-top: 0px; margin-bottom: 0px; line-height: normal; font-family: Menlo;"><span style="font-size:12px;"> </span><span style="font-size:10px;">NSLog(@"<span style="line-height: normal; font-family: 'Heiti SC Light';">竖屏</span>");</span></p> } break; case UIDeviceOrientationLandscapeLeft: case UIDeviceOrientationLandscapeRight: { view.backgroundColor=[UIColor greenColor]; NSLog(@"横屏"); } break; default: break; }}
ipone横屏和竖屏效果
-(UIInterfaceOrientationMask)supportedInterfaceOrientations{ return UIInterfaceOrientationMaskAllButUpsideDown;//home键向上}-(void)viewWillLayoutSubviews{ [super viewWillLayoutSubviews]; //UIView *view=(UIView *)[self.view viewWithTag:1000]; switch ([UIDevice currentDevice].orientation) { case UIDeviceOrientationPortrait: { //view.backgroundColor=[UIColor greenColor]; [self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; for(int i=0;i<3;i++) { for (int j=0; j<4; j++) { UIView *view1=[UIView new]; view1.backgroundColor=[UIColor greenColor]; view1.translatesAutoresizingMaskIntoConstraints=NO; //view.layer.masksToBounds = YES; view1.layer.cornerRadius=10; [self.view addSubview:view1]; NSLayoutConstraint *constraint1=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:i*44+(i+1)*20]; [self.view addConstraint:constraint1]; NSLayoutConstraint *constraint2=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:j*44+(j+1)*(([UIScreen mainScreen].bounds.size.width)-44*4)/5]; [self.view addConstraint:constraint2]; NSLayoutConstraint *constraint3=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeWidth multiplier:1 constant:44]; [self.view addConstraint:constraint3]; NSLayoutConstraint *constraint4=[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeHeight multiplier:1 constant:44]; [self.view addConstraint:constraint4]; } } NSLog(@"竖屏"); } break; case UIDeviceOrientationLandscapeLeft: case UIDeviceOrientationLandscapeRight: { //view.backgroundColor=[UIColor greenColor]; [self.view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)]; int count=0; for(int i=0;i<2;i++) { for (int j=0; j<8; j++) { count++; UIView *view2=[UIView new]; view2.backgroundColor=[UIColor redColor]; view2.layer.cornerRadius=10; view2.translatesAutoresizingMaskIntoConstraints=NO; [self.view addSubview:view2]; if (count<=12) { NSLayoutConstraint *constraint1=[NSLayoutConstraint constraintWithItem:view2 attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeTop multiplier:1 constant:i*44+(i+1)*20]; [self.view addConstraint:constraint1]; NSLayoutConstraint *constraint2=[NSLayoutConstraint constraintWithItem:view2 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self.view attribute:NSLayoutAttributeLeft multiplier:1 constant:j*44+(j+1)*(([UIScreen mainScreen].bounds.size.width)-44*8)/9]; [self.view addConstraint:constraint2]; NSLayoutConstraint *constraint3=[NSLayoutConstraint constraintWithItem:view2 attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeWidth multiplier:1 constant:44]; [self.view addConstraint:constraint3]; NSLayoutConstraint *constraint4=[NSLayoutConstraint constraintWithItem:view2 attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeHeight multiplier:1 constant:44]; [self.view addConstraint:constraint4]; } } } NSLog(@"横屏"); } break; default: break; }}
竖屏
i*44+(i+1)*20
间距欢度为20
当循环为0时
0+20只有间隔
当循环为1时
44+40可以理解为20+44+20
有循环为2时
2*44+3*20
理解两个高度为44的正方形,3个间隔
横屏
横向的的运行原理了和竖向时差不多的
先的到屏幕宽度在除上有多少个圆角正方形得到总得间隔 在出上圆角正方形的的数目加1(为什么加一呢因为间隔数是比圆角正方形多一个)得到的就是它们之间的间隔大小
通过2*8循环输出因为上面绿色的圆角正方形只有12所有当2*8循环到12时就不往下处理可以通过break结束循环(定义一个变量来累加直到判断为12时)
0 0
- IOS(UI)_AutoLayout(自动布局)01
- IOS(UI)_AutoLayout(自动布局)
- IOS(UI)_AutoLayout(自动布局)_01
- UI自动布局
- 【IOS】基本UI布局
- IOS自动布局进阶系列视频教程-01自动布局概述
- UI AutoLayer 自动布局-->约束
- iOS 新特性分列式 之 iOS 6.x - 主要内容:自动布局、集合视图、UI 状态保持
- iOS 6 自动布局
- IOS 6 自动布局
- 关于iOS自动布局
- ios 自动布局
- IOS自动布局
- 关于iOS自动布局
- ios Autolayout自动布局
- iOS 自动布局 layoutConstraint
- iOS 自动布局教程
- iOS自动布局
- iOS新手引导页的实现,源码
- java8新特性
- 重拾编程之路--冒泡排序算法
- JAVA中的String类--字符链接运算符“+”
- Struts+Hibernate常用工具类
- IOS(UI)_AutoLayout(自动布局)01
- org.hibernate.MappingException: duplicate property mapping:
- 搭建树莓派python开发环境
- WPF Popup 窗体弹出瞬间看到桌面背景
- 项目管理3-项目经理需要坚持的原则
- Python 面向对象
- 重拾编程之路--插入排序算法
- 堆和栈的几点区别
- eclipse启动tomcat成功,报404不能访问