屏幕布局

  移动应用开发比桌面应用更难开发,同样一个应用的iPad版本不应该是简单地将iPhone界面放大,而是需要重新布局的。

第1代和第2代iPad屏幕的物理尺寸是9.7英寸,分辨率是1024*768像素,第3代iPad采用视网膜屏幕技术,分辨率达到了2048*1536,而iPad mini的分辨率达到了1024*768像素。

在iPhone4之前,屏幕的物理尺寸是3.5英寸,屏幕分辨率是480*320像素。iPhone4 和iPhone 4S采用视网膜屏幕技术,屏幕的物理尺寸为3.5英寸,分辨率达到了960*640像素。iPhone 5采用视网膜屏幕技术,屏幕的物理尺寸为4英寸,分辨率是1136*640

注:屏幕或控件的尺寸以点为单位,在视网膜屏幕技术中,一个点包括了4个像素,而没采用视网膜屏幕技术的一个点包括一个像素

在iPhone竖屏幕中,状态栏占用20点,导航栏(或工具栏)占用44点,标签栏占用49点,实际这些尺寸在iPhone横屏幕和iPad上也保持不变。

绝对布局和相对布局:

  绝对布局就是视图或者控件在屏幕中的位置绝对,它的大小也是绝对的。即使它所在的父容器视图大小变化或者屏幕旋转了,它的位置也不变。相对布局在上述情况下,它的位置是变化的。使用绝对布局还是相对布局取决于应用场景。在IOS6之后,推出Autolayout布局技术。选择xib或故事板文件,打开文件检查器,可取消选中Use Autolayout复选框,然后选中改变布局的控件,打开其尺寸检查器,在View的Autosizing属性中,虚线线段代表是相对距离,实线线段代表是绝对距离,点击可相互切换。

旋转屏幕

创建工程后,多创建一个

LandscapeViewController : UIViewController并一起创建xib文件,再在ViewController.h中添加两属性

@property(nonatomic,strong) UIView *mainPortraitView;

@property(nonatomic,strong) UIView *mainLandscapeView;
在ViewController.m中添加代码

- (void)viewDidLoad {

[super viewDidLoad];

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

LandscapeViewController *landscapeViewController = [[LandscapeViewController alloc]initWithNibName:@"LandscapeViewController" bundle:NULL];

(self.mainLandscapeView) = landscapeViewController.view;

self.mainPortraitView = self.view;

}

-(BOOL)shouldAutorotate{

return YES;

}

-(NSUInteger)supportedInterfaceOrientations

{

return UIInterfaceOrientationMaskAllButUpsideDown;

}

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

{

if (toInterfaceOrientation == UIInterfaceOrientationLandscapeRight) {

NSLog(@"UIInterfaceOrientationLandscapeRight");

self.view = self.mainLandscapeView;

self.view.transform = CGAffineTransformMakeRotation(0);

}else if(toInterfaceOrientation == UIInterfaceOrientationLandscapeLeft){

NSLog(@"UIInterfaceOrientationLandscapeLeft");

self.view = self.mainLandscapeView;

//        self.view.transform = CGAffineTransformMakeRotation(-M_PI);

}else if(toInterfaceOrientation == UIInterfaceOrientationPortrait){

NSLog(@"UIInterfaceOrientationPortrait");

self.view = self.mainPortraitView;

self.view.transform = CGAffineTransformMakeRotation(0);

}else{

NSLog(@"UIDeviceOrientationPortraitUpsideDown");

self.view = self.mainPortraitView;

self.view.transform = CGAffineTransformMakeRotation(M_PI);

}

[super willRotateToInterfaceOrientation:toInterfaceOrientation duration:duration];

}

LandscapeViewController的View设置成横屏:

时间: 2024-10-15 18:32:14

屏幕布局的相关文章

IOS屏幕布局

1.iPad和iPhone的屏幕布局 在IB中,屏幕或控件的尺寸以点为单位.在视网膜技术中,1个点包括4个像素,而没有采用视网膜屏幕技术的还是1个点包括1个像素. 2.绝对布局和相对布局 3.使用AutoLayout布局 i.AutoLayout为空间布局定义了一套约束(constraint),约束定义了控件与视图之间的关系. ii.在垂直距离的约束属性设定中, Relation:指设定的距离之间的关系,包括3个选项——等于.大于等于和小于等于. Constant:约束数值. Priority:

第4章(4) 屏幕布局和旋转

分类:C#.Android.VS2015:创建日期:2016-02-06 为了控制屏幕的放置方向(纵向.横向),可以在Resource下同时定义两种不同的布局文件夹:layout和layout-land,这样一来,系统就会根据当前屏幕的放置方向自动请求合适的布局. 注意:<Ctrl>+<F11>是控制模拟器"竖屏/横屏"转换的快捷键. 1.layout和layout-land 要点: 纵向放置方式(portrait,肖像模式)使用的资源保存在layout文件夹下

多图居中屏幕布局

<ul>   <li><img src="https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=3174934711,2321617919&fm=58"  /></li> <li><img src="https://ss1.baidu.com/6ONXsjip0QIZ8tyhnq/it/u=3174934711,2321617919&fm=58" 

为iPhone 6设计自适应布局

Apple从iOS 6加入了Auto Layout后开始就比较委婉的开始鼓励.建议开发者使用自适应布局,但是到目前为止,我感觉大多数开发者一直在回避这个问题,不管是不是由于历史原因造成的,至少他们在心底还坚守着固定布局的老传统思想. 随着iPhone6.iPhone6 Plus的到来,使用自适应布局更是迫在眉睫的事,固定布局的老传统思想脆弱的不堪一击.现在的iPhone有4种尺寸,如果算上iPad,现在Apple的iOS设备有5种尺寸.我们在准备使用自适应布局设计应用界面之前,可以把这5种尺寸划

Android之Linearlayouy线性布局

写了个小例子xml代码如下: 1 <?xml version="1.0" encoding="utf-8"?> 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:app="http://schemas.android.com/apk/res-auto" 4 xmlns:tools="

UI设计师不可不知的android屏幕知识

北京尚学堂提供 不少设计师和工程师都被安卓设备纷繁的屏幕搞得晕头转向,我既做UI设计,也做过一点安卓界面布局,刚好对这块内容比较熟悉,也曾在公司内部做过相关的讲座,在此,我将此部分知识重新梳理出来分享给大家! 1.了解几个概念 (1)分辨率.分辨率就是手机屏幕的像素点数,一般描述成屏幕的"宽×高",安卓手机屏幕常见的分辨率有480×800.720×1280.1080×1920等.720×1280表示此屏幕在宽度方向有720个像素,在高度方向有1280个像素. (2)屏幕大小.屏幕大小是

Android学习-- 屏幕适配

对于从事android应用开发的朋友来说都应该知道,现在的安卓手机的屏幕类型十分繁多, 大小尺寸,长宽比例都不尽相同,同一个界面在不同分辨率的手机上可能出现布局错乱,控件跑位的现象.做屏幕的适配不可能实现在每种屏幕上显示出的界面 效果完全一致.只能靠平时的编程习惯和经验是的界面在不同的屏幕尺寸在不会出现过分的走位,在可遇见范围内控制界面在不同屏幕下的变化,并做出相应调 整.那么偶们应该如何做到屏幕的适配呢?下面我就以我的开发经验来说说吧. 1.尽量使用线性布局(LinearLayout)和相对布

Android线性布局LinearLayout(七)

一.先了解几个属性: 1.布局 1) android:orientation="vertical" 垂直布局 2)android:orientation="horizontal"  水平布局 2.控件内容高和宽布局 1) android:layout_width="match_parent" ,布满整个屏幕. [匹配父窗口] 2)android:layout_height="wrap_content",布局元素将根据内容更改大

android屏幕知识,dp sp px总结

屏幕初步总结. 一.目前手机屏幕像素密度基本有5种情况.(以下像素密度简称密度) 密度 ldpi mdpi  hdpi xhdpi    xxhdpi 密度值 120 160 240 320    480 分辨率 240x320 320x480 480x800 720x1280 1080x1920 换算 1dp=0.75px 1dp=1px 1dp=1.5px 1dp=2px  1dp=3px 当安卓系统字号为“普通”时,sp==dp,换算到px和dp一样. 1.320x480和480x800的