ios基础知识--03
2016-05-08 11:39
453 查看
设备 | 屏幕类型 | 屏幕尺寸 | 点 | 分辨率(像素) |
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 |
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在启动过程中会全屏显示叫做De
4000
fault.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 立即跳出遍历;
}
}];
相关文章推荐
- Vesions ignore & ld: library not found for -l问题总结
- ios基础知识--02
- iOS开发之多XIB之间相互关联
- ios基础知识--01
- 【iOS】NSDate分类,获得中国农历
- iOS开发之多storyboard相互关联
- iOS本地数据存取,这里就够了
- IOS9新特性慢慢整理
- iOS后台持续播放音乐
- iOS学习笔记77-ios开发,javascript直接调用oc代码而非通过改变url回调方式
- iOS Runloop详解
- iOS图片的自动适配(通过类别实现)
- IOS开发学习-基础环境搭建-1
- iOS三种多线程编程的技术介绍
- iOS开发多线程篇—多线程的的相关概念(1)
- iOS多线程篇:NSThread
- ios中URL中出现字典参数的处理问题
- IOS 模仿TableView封装
- iOS 返回时tableview内容上移
- iOS label根据内容自适应宽度