标签:
设备 |
屏幕类型 |
屏幕尺寸 |
点 |
分辨率(像素) |
iPhone 3GS |
非Retina |
3.5 inch |
320*480 |
320x480 |
iPhone4\4S |
Retina |
3.5 inch |
320*480 |
640x960 |
iPhone5\5C\5S |
Retina |
4 inch |
320*568 |
640x1136 |
iPhone6 |
Retina |
4.7 inch |
375*667 |
750x1334 |
iPhone6 Plus |
Retina |
5.5 inch |
414*736 |
1242x2208 |
在retina屏幕下一个点表示2个像素,在非retina屏幕下一个点表示1个像素。在iphone6 plus 下一个点表示3个像素。
? 结论1:在同样一个尺寸的屏幕下由于使用的屏幕不一样(retina和非retina),所以造成的屏幕分辨率会不同。也就是说,同样是30*30的像素,在3.5 inch大小的屏幕上,如果是非retina显示会大一些, retina屏幕显示会小一些。
? 结论2:所以在开发中使用的是点。(比如使用30*30,不是表示30像素,而是表示30点,这样的话iOS系统会自动把点转换为对应的像素)。
? 1> 非retina屏幕1个点表示1像素
? 2> retian屏幕1个点表示2像素
? 3> iPhone6 Plus下1个点表示3像素
? 结论3:因为程序中的是点, iOS系统会自动把点转换为不同的像素去找图片,所以图片对应的也要准备多份不同的图片。
? @2x (视网膜屏幕,在原来点坐标的大小上乘以2)
? @3x
? 比如:btn_left这张图,在代码中写的时候使用的是btn_left,iOS会根据实际的屏幕去查找btn_left.png或者是btn_left@2x.png或者btn_left@3x.png
? Default-568h@2x
? 568表示iPhone5
? h 表示高度
? 上面的这些都是固定写法,顺序不能调换
总结:iOS开发面向的是点坐标系,不是像素
? 一个app在启动过程中会全屏显示叫做Default.png的图片
? 不用规格Default的使用场合
? Default.png:非retina-iPhone屏幕(3.5 inch),320x480
? Default@2x.png:retina-iPhone屏幕(3.5 inch),640x960
? Default-568h@2x.png:4 inch的retina-iPhone屏幕,640x1136
? Default-Portrait~ipad.png:非retain-iPad竖屏屏幕,768x1024
? Default-Portrait~ipad@2x.png:retain-iPad竖屏屏幕,1536x2048
? Default-Landscape~ipad.png:非retain-iPad横屏屏幕,1024x768
? Default-Landscape~ipad@2x.png:retain-iPad横屏屏幕,2048x1536
应用程序图标:
? 只要文件名叫做Icon.png,就会自动被当做是应用程序的图标
? 一个应用程序可以准备多种规格的图标,详情可以查看苹果官方文档,如右图
启动图片:
1.LaunchScreen
2.launch image souce
UIButton:
? UIButton有很多种状态,它提供了一些便捷属性,可以直接获取当前状态下的文字、文字颜色、图片等
? @property(nonatomic,readonly,retain)NSString *currentTitle;
? @property(nonatomic,readonly,retain)UIColor *currentTitleColor;
? @property(nonatomic,readonly,retain)UIImage *currentImage;
? @property(nonatomic,readonly,retain)UIImage *currentBackgroundImage;
状态栏:
? 在iOS7中,状态栏默认情况下归控制器管理,比如状态栏的样式、状态栏的是否可见
? 控制器通过重写以下方法来控制状态栏
? 设置状态栏的样式
- (UIStatusBarStyle)preferredStatusBarStyle;
其中UIStatusBarStyleLightContent是白色样式
? 设置状态栏的可见性
-(BOOL)prefersStatusBarHidden;
:-(UIStatusBarStyle)preferredStatusBarStyle{
return UIStatusBarStyleLightContent;
}
- (BOOL) prefersStatusBarHidden{
return YES;
}
1. 将图片移动到视图的顶层
//bringSubviewToFront 调用方法的这个view,必须是被携带view的父view
[self.viewbringSubviewToFront:self.imageView]
//userInteractionEnabled = NO 禁止任何用户交互,如果是父view设置了这个属性为no,那么它的子view也将不会接受用户交互
使用kvc的方式赋值:
[self setValuesForKeyWithDictionary:dict];
//让数组中所有元素都执行 removeFromSuperview
[_answerView.subviewsmakeObjectsPerformSelector:@selector(removeFromSuperview)];
//遍历数组(最快的):
[_optionView.subviews enumerateObjectsUsingBlock:^(__kindof UIView * _Nonnull obj, NSUIntegeridx, BOOL * _Nonnull stop) {
obj 数组中的对象;
idx 表示下标;
*stop yes 立即跳出遍历;
}
}];
标签:
原文地址:http://blog.csdn.net/hx_lei/article/details/51344894