IOS笔记 1
< ![CDATA[
笔记
UIWindows 与UIView的关系
iOS的坐标系统
视图层次结构
视图坐标(Frame和Bounds区别)
UIView的常用属性和方法
坐标系统的变换
UIView内容模式
UIView动画
UIKit是一个提供了在iOS上实现图形,事件驱动的框架
UIView是视图基类
UIViewController试图控制器的基类
UIResponder表示一个可以接受触摸屏上的触摸事件的对象
窗口是视图的一个子类
窗口的主要功能:一个提供一个区域来显示视图
二来将事件event分发给视图
一个应用通常只有一个窗口。但也有例外
窗口与视图
使用窗口与视图在屏幕上显示应用程序的内容,窗口本身不具有任何可见的内容。但它对于应用程序的视图提供了一个基本的容器。视图定义
你想要的一些内容,填充窗口的一部分,例如,图形,文本。等
什么是窗口
每个应用程序至少需要一个窗口,通常 窗口用UIWindow类的实例来表示。UIWindow继承自UIView
window对象有以下职责:
它包含了应用程序的可视化的内容
它为视图和其他应用程序对象在触摸事件中提供了关键的作用
它与试图控制器一起协作来呈现数据
大多数IOS应用程序在其生命周期内只有一个UIWindow。并且,在应用程序的生命周期中。窗口跨越整个设备的主屏幕和从应用程序的主nib文件加载(编程方式创建)。但是,如果应用程序支持的外部显示器使用的视频输出,它可以创建额外的窗口,以显示改外部显示器上的内容,所有其他的窗口通常由系统创建,并且通常在响应特定的事件的时候创建的。如电话呼入
UIScreen
UIScreen对象可以充当ios设备物理屏幕的替代者,[UIScreen mainScreen]
bounds 获取屏幕大小。
手机屏幕的几个概念
Screen Size 屏幕尺寸,指具体的屏幕物理长度,以屏幕对角线的长度作为标示
Resolution 屏幕分辨率 指屏幕上的总共物理像素点
Density密度 标示每英寸有多少个显示点
ASPECT ratio 屏幕宽高比例。如4:3
Device-independent pixe:dip 设备无关像素。。dip是虚拟的像素单位。
专门用来给程序定义UI用
色阶 。平常说的65536色,26万色
ipad mini 1024*768
ipad3~4 2048*1536
ipad~2 1024*768
iphone 5 640*1136
iphone4~4s 640*960
获取当前UIWindow和级别
通过UIApplication获取当前的keyWindow
keyWindow 是用来管理 键盘以及非触摸类的消息。
并且只有一个window是keyWindow
UIWindow *keyWindow = [UIApplication sharedApplication].keyWindow;
每个UIWindow对象配置windowLevel属性。大部分不应该去改变windowLevel
UIWindow 有3个级别。 通过windowLevel设置,优先级为
UIWindowLevelAlert > UIWindowLevelStatusBar > UIWindowLevelNormal
Demon



- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
//self.window.windowLevel = UIWindowLevelNormal;
[self.window makeKeyAndVisible];
//定义一个button。类型是 根据rect 的比例来画出来的。
UIButton *startButton =[UIButton buttonWithType:UIButtonTypeRoundedRect];
//定位
startButton.frame=CGRectMake(/-/, , , );
//设置标题
[startButton setTitle:@"警告" forState:UIControlStateNormal];
//设置事件。添加事件是自身。 目标是alertUser方法。从touchup触发
[startButton addTarget:self action:@selector(alertUser) forControlEvents:UIControlEventTouchUpInside];
//加到view里面
[self.window addSubview:startButton];
// self.window.windowLevel = UIWindowLevelStatusBar;
//
NSLog(@" window level %.2f",self.window.windowLevel);
//
// NSLog(@" normal: %.2f",UIWindowLevelNormal);
//
// NSLog(@" statusbar: %.2f", UIWindowLevelStatusBar);
//
// NSLog(@" alert: %.2f", UIWindowLevelAlert);
//
return YES;
}
-(void) alertUser
{
UIAlertView *alertview=[[UIAlertView alloc]
initWithTitle:@"提示"
message:@"content"
delegate:nil
cancelButtonTitle:@"确定"
otherButtonTitles:nil];
[alertview show]; //弹出去
}
]]>
原文:http://abujj.me/archives/370
IOS笔记 1的更多相关文章
- 荼菜的iOS笔记--UIView的几个Block动画
前言:我的第一篇文章荼菜的iOS笔记–Core Animation 核心动画算是比较详细讲了核心动画的用法,但是如你上篇看到的,有时我们只是想实现一些很小的动画,这时再用coreAnimation就会 ...
- 【转】iOS笔记-自定义控件(OC)
原文网址:http://www.jianshu.com/p/f23862eb7b8a 导读: iOS开发中,很多时候系统提供的控件并不能很好的满足我们的需求,因此,自定义控件便成为搭建UI界面中必不可 ...
- iOS笔记———数据存储
应用沙盒:应用文件系统的根目录,每个应用都有独自的沙盒相互:在xcode中可以用NSHomeDirectory()函数,打印当前应用的沙盒根路径. 应用程序包:包含了所有资源文件和执行文件; * Do ...
- Xamarin开发IOS笔记:切换输入法时输入框被遮住
在进行IOS开发的过程中,出现类似微信朋友圈的交互界面,当用户遇到感兴趣的内容可以进行评论.为了方便评论输入,当出现评论输入框的时候自动将评论输入框移动至键盘的上方,这样方便边输入边查看. 当用户隐藏 ...
- 【IOS笔记】Delegation
Delegation Delegation is a simple and powerful pattern in which one object in a program acts on beha ...
- 【IOS笔记】Event Delivery: The Responder Chain
Event Delivery: The Responder Chain 事件分发--响应链 When you design your app, it’s likely that you want t ...
- 【IOS笔记】Gesture Recognizers
Gesture Recognizers Gesture recognizers convert low-level event handling code into higher-level acti ...
- 【IOS笔记】About Events in iOS
About Events in iOS Users manipulate their iOS devices in a number of ways, such as touching the scr ...
- 【IOS笔记】Resource Management in View Controllers
Resource Management in View Controllers 视图控制器的资源管理 View controllers are an essential part of managin ...
随机推荐
- 卸载Symantec Endpoint Protection, 无需password的卸载方法
近期一次偶然的机会, 被人装了个Symantec在电脑上, 搞得各种报警, 验证, 烦死. 然后就自然而然的想卸载掉这个该死的杀毒软件, 没想到这个杀毒软件竟然还是个流氓杀毒软件, 卸载还须要pass ...
- 山东省赛J题:Contest Print Server
Description In ACM/ICPC on-site contests ,3 students share 1 computer,so you can print your source c ...
- Nginx优化具体,应对高并发
nginx指令中的优化(配置文件) worker_processes 8; nginx进程数,建议依照cpu数目来指定.一般为它的倍数. worker_cpu_affinity 00000001 ...
- [Angualr 2] Watch for changes
You can watch for form / control changes by using .valueChanges.observe({...}): this.sku.valueChange ...
- android:Adb connection Error:远程主机强迫关闭了一个现有的连接
用真机调试程序的时候,eclipse的console总是出现如下的错误“Adb connection Error:远程主机强迫关闭了一个现有的连接” 问题出现的原因:这是ddms调用adb引发的. 经 ...
- Java NIO中核心组成和IO区别
1.Java NIO核心组件 Java NIO中有很多类和组件,包括Channel,Buffer 和 Selector 构成了核心的API.其它组件如Pipe和FileLock是与三个核心组件共同使用 ...
- discuz! X3 门户文章添加字段
1. 首先需要去数据表里[llgp_portal_article_title]手动添加需要添加的字段. (注意: 数据表前缀依据自己的设置而定) 2. 修改模版template\default\por ...
- 检测网络变化(wifi、2g、3g、4g)
检测网络变化(wifi.2g.3g.4g) 1.注册广播"android.net.conn.CONNECTIVITY_CHANGE"和"android.net.wifi. ...
- __name__属性
#coding=utf-8#首先我们分别看一下这个模块在不同场景中的__name__的值print __name__ #其次我们看一下__name__属性的常用情况if __name__==" ...
- Sql Server插入随机数
--处理性别随机select (case when round(rand()*10,0)>5 then '男' else '女' end), --处理时间段范围内随机select dateadd ...