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 ...
随机推荐
- 图解向hadoop分布式文件系统写文件的工作流程
网上看到一张关于hadoop分布式文件系统(hdfs)的工作原理的图片,其实主要是介绍了向hdfs写一个文件的流程.图中的流程已经非常清晰,直接上图 好吧,博客园告诉我少于200字的文章不允许发布到网 ...
- sqlserver客户端连接只显示特定数据库的配置方法
首先,在实例级,有一个 view any database的这个属性,打开时可以看到所有数据库的元数据表,因此能看到实例下所有数据库的名字.默认public角色拥有这个属性.所以新建的登陆是可以看到所 ...
- [置顶] [Android源码分析]inquiry result引起的上层变化分析
在上一篇文章中,我们详细分析了android是如何解析蓝牙反馈上来的搜索到的设备信息,本文将会继续分析这些信息到了上层之后是如何处理. 8.inquiry result引起的上层变化 我们知道inqu ...
- JSP中的路径
我的原则 所有路径一律使用绝对路径,就是以"/"开头的或者带host的路径.形如: /imgs/1.jpg <%= request.getContextPath()%> ...
- tomcat URL简写案例:模拟站点www.baidu.com的訪问
tomcat URL简写案例:模拟站点 * 实际URL:http://www.baidu.com:8080/myweb/1.html * 实际位置:F:\mywebapps\myweb\1.htm ...
- 基于SSH的数据库中图片的读写
近期项目中遇到了这个问题,网上查了一些资料所谓是零零散散,这里写篇博文做个笔记. 注:这篇博文中部分类的属性声明未列出,应该不算难,基本都是以private 类型 名称 格式声明,然后配getter ...
- Java基础知识强化之IO流笔记17:FileOutputStream构造方法使用
1. 可以参照之前写的笔记: Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流) 2. FileOutputStream(常用的)构造方法: FileOu ...
- Cookie的读写
记住怎么写就可以了,不要问我为什么=_= 设置值的页面:context.Response.SetCookie(new HttpCookie("username",username) ...
- 安装php时,make步骤报错make: *** [ext/gd/gd.lo] Error 1
安装PHP时,make步骤报错make: *** [ext/gd/gd.lo] Error 1 /usr/local/src/LAMP+memcahed+catci/php-5.4.0/ext/gd/ ...
- IIS7、IIS6 web.config注册HttpModule
IIS6注册HttpModule <system.web> <httpModules> <add name="..." type= ...