- 浏览: 710257 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
javenwong:
你好,我现在需要给一个Composite做圆角处理,不知道怎么 ...
SWT圆角窗口绘制 -
whao189:
回家了详细看看
Storyboard 解析 -
zhaoyubetter:
确实够麻烦
IOS 开发环境,证书和授权文件是什么? -
datawarehouse:
一直对这两个认为是一样的,现在学习了。
Oracle DB中的Schema -
yulanfeiyang:
顶,mark
下载音频,在IOS设备上播放
要在屏幕上显示内容首先要创建一个窗口承载内容,要创建一个窗口,需要一个边框(frame),含有边框信息的底层 结构就CGRect。每个能够在屏幕上显示自己的对象都有一个边框,定义了他的显示区域,不过许多高层的视图类会自动计算这一信息。其他的那些类则在视图初始化时通过一个initWithFrame的初始化方法来设置。 再来认识一个类:UIScreen。UIScreen类代表了屏幕,通过这个类我们可以获取一些想要的东东。
CGrect screenBounds = [ [UIScreen mainScreen]bounds];//返回的是带有状态栏的Rect
CGRect viewBounds = [ [UIScreen mainScreen]applicationFrame];//不包含状态栏的Rect
//screenBounds 与 viewBounds 均是相对于设备屏幕来说的
//所以 screenBounds.origin.x== 0.0 ; screenBounds.oringin.y = 0.0; screenBounds.size.width == 320; screenBounds.size.height == 480(或者其他分辨率有所差异)
//所以 screenBounds.origin.x== 0.0 ; screenBounds.oringin.y = 20.0;(因为状态栏的高度是20像素) screenBounds.size.width == 320; screenBounds.size.height == 480
UIView
下面来认识一下UIView类,这个类继承自UIResponder,看这个名字我们就知道它是负责显示的画布,如果说把window比作画框的话。我们就是不断地在画框上移除、更换或者叠加画布,或者在画布上叠加其他画布,大小当然 由绘画者来决定了。有了画布,我们就可以在上面任意施为了。很多简单的东西我会把库里面的内容贴出来,如果东西太多贴出来就不太好,朋友们自己去库文件里面看吧。这个类在UIView.h里面。下面我们先学习一些基础的东西,其他的东东会在以后慢慢展开。
UIView* myView =[[ UIView alloc]initWithFrame:CGRectMake(0.0,0.0,200.0,400.0)];//这里创建了一块画布,定义了相对于父窗口的位置, 以及大小。我们可以把这块画布加到其他画布上,具体方法后面会讲到。我们还可以在这块画布上画上其它好玩的东东,具体情形后面会一一讲解。
UIWindow
UIWindow继承自UIView,关于这一点可能有点逻辑障碍,画框怎么继承自画布呢?不要过于去专牛角尖,画框的形状不就是跟画布一样吗?拿一块画布然后用一些方法把它加强,是不是可以当一个画框用呢?这也是为什么 一个view可以直接加到另一个view上去的原因了。
看一下系统的初始化过程(在application didFinishLauchingWithOptions里面):
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; self.window.backgroundColor = [UIColor grayColor];//给window设置一个背景色 [self.window makeKeyAndVisible];//让window显示出来
实战演练:
没结束我会用一个综合的 例子来总结我的学习成果,彻底理解所学,我觉得既然选择写代码,就要理解原理,否则只知其然不知其所以然是不能做一个好的程序员的。
1)新建一个工程选择Empty Application 名字为LW1
2)在application didFinishLaunchingWithOptions里面,你会发现系统已经建好一个画框了,我们现在就用系统帮我们建好的画框,你当然也可以自己建一个画框,不过没这个必要了,忘了讲了,一个应用程序只能有一个画框。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];//系统帮你建画框 // Override point for customization after application launch. //自己测试一下 bounds与aplicationFrame的区别 CGRect bound = [[UIScreen mainScreen]bounds]; NSLog(@"boundwidth:%f boundheight:%f ",bound.size.width, bound.size.height); NSLog(@"boundx:%f boundy:%f ",bound.origin.x, bound.origin.y); CGRect appBound = [[UIScreen mainScreen]applicationFrame]; NSLog(@"appBoundwidth:%f appBoundheight:%f ",appBound.size.width, appBound.size.height); NSLog(@"appBoundx:%f appBoundy:%f ",appBound.origin.x, appBound.origin.y); //画第一块画布然涂成蓝色,大小是320 X 100 CGRect CGone = CGRectMake(0.0, 0.0, 320, 100);//画个矩形,初始化位置与大小 UIView *v_one = [[UIView alloc]initWithFrame:CGone];//初始化view v_one.backgroundColor = [UIColor blueColor];// 涂成蓝色 [self.window addSubview:v_one];//直接加到画框上 //第二块注意它的位置 CGRect CGtwo = CGRectMake(0.0, 100, 160, 100);//画个矩形、初始化位置与大小 UIView *v_two = [[UIView alloc]initWithFrame:CGtwo];//初始化view v_two.backgroundColor = [UIColor redColor];//涂成红色 [self.window addSubview:v_two];//叠加到画框 //第三块注意他的位置 CGRect CGthree = CGRectMake(160, 100, 160, 100);// UIView *v_three = [[UIView alloc]initWithFrame:CGthree];// v_three.backgroundColor = [UIColor greenColor];// [self.window addSubview:v_three];// //第四块注意它的位置 CGRect CGfour = CGRectMake(0.0, 260, 320, 200);// UIView *v_four = [[UIView alloc]initWithFrame:CGfour];// v_four.backgroundColor = [UIColor orangeColor];// [self.window addSubview:v_four];// //第五块,计算一下它的位置,看看它的效果,你可以让试一下把这段代码移到第一快初始化的上面试试,会有意想不到的效果 CGRect CGfive = CGRectMake(100, 150, 160, 200); UIView *v_five = [[UIView alloc]initWithFrame:CGfive]; v_five.backgroundColor = [UIColor yellowColor]; [self.window addSubview:v_five]; self.window.backgroundColor = [UIColor grayColor];// [self.window makeKeyAndVisible];// return YES; }
转自:http://blog.csdn.net/iukey/article/details/7083165
发表评论
-
iphone编程之UILabel 用法详解
2012-12-18 14:38 1402这段代码动态的创建了一个UILabel,并且把相关常用的属 ... -
IOS用正则验证手机号
2012-12-14 12:01 17203- (BOOL)validateMobile:(NSStr ... -
UITableView技巧之去除UITableViewCell边框
2012-12-14 10:42 3602有时候想在UITableViewCell中加内容,但又不想要c ... -
MAC MySQL Workbench执行批量更新和删除的时候错误解决
2012-10-25 11:21 3999处理MySQL更新表时ErrorCode:1175.You a ... -
Objective-C编码风格指南
2012-10-17 17:00 1214参考资料: • Apple: Coding Guideline ... -
autorelease对象具体什么时候释放?
2012-09-19 15:21 1038在项目中,会有一个默认的Autorelease pool,程序 ... -
Objective-C内存管理教程和原理剖析
2012-09-10 14:44 896此文涉及的内存管理是针对于继承于NSObject的Clas ... -
IOS开发内存释放小结
2012-09-03 17:34 5363内存释放是iphone开发过程中比较重的地方,所以在开辟内存后 ... -
为什么Android没有iOS那么顺滑
2012-08-29 14:38 902虽然很多Android手机的配 ... -
UITextView关闭键盘
2012-08-29 14:13 142081.如果你程序是有导航条的,可以在导航条上面加多一个Done的 ... -
Mac系统下查看鼠标所在点的RGB值--数码测色计
2012-08-29 14:05 1791苹果电脑的Mac OS X系统自带鼠标所在点颜色RGB值查看工 ... -
UIView你知道多少
2012-08-21 09:49 840曾经有人这么说过,在i ... -
Objective-C内存管理总结〜CC专版
2012-08-17 18:24 816iPhone系统中的Objective-C的内存管理机制是比较 ... -
iOS内存管理
2012-08-17 18:19 28361. 内总管理原则(引用计数) IOS的对象都继承于 ... -
IOS 获取当前系统时间的年、月、日、小时、分、秒
2012-08-14 17:33 6617NSCalendar *calendar = [[NSCa ... -
IOS判断是否为数字
2012-08-13 17:59 4902判断是否为整形: - (BOOL)isPureInt:(N ... -
self.用法
2012-08-09 14:55 847MyClass.h @interface MyClass ... -
#import与@class的区别
2012-08-08 17:13 9371.import会包含这个类的所有信息,包括实体变量和方法,而 ... -
iphone图标去掉光晕效果
2012-08-07 16:53 1156图片背景是透明的 如果想去掉光晕效果,就在info.plist ... -
去掉 App Store 内图标上部高亮效果的办法
2012-08-07 16:52 888苹果默认会在 App Store 里的应用图标上半部自 ...
相关推荐
在iOS开发中,视图(View)和视图控制器(View Controller)是构建用户界面的基础元素。本课件主要介绍了iOS中的窗口与视图、视图控制器及其应用实例。 首先,我们来了解一下iOS的窗口(Window)与视图(View)。在...
在iOS开发中,视图(View)和视图控制器(View Controller)是构建用户界面的基础元素。本教程主要涵盖了iOS的窗口(Window)与视图(View)的概念,以及视图控制器(ViewController)的使用。 首先,我们来看iOS的...
在iOS系统中,视图(View)和视图控制器(UIViewController)共同构成了用户界面的基本结构。以下是对这两个概念的详细解释。 16.1 iOS的窗口(Window)与视图(View) 窗口在iOS中扮演着显示内容和处理用户交互的...
在IT行业中,尤其是在移动应用开发或者桌面应用开发中,"view-高级切换-图片或者界面-window底层显示"这个主题涉及到的是视图(View)的动态更新、界面切换以及窗口(Window)的底层渲染机制。视图是用户界面的基础...
在iOS应用开发中,窗口(Window)和视图(View)是构建用户界面的基本元素,而淡入淡出效果和视图旋转则是提升用户体验的重要手段。这个名为"IOS应用源码Demo-窗口淡入淡出加视图旋转SwitchView-毕设学习.zip"的...
### iOS UI开发详解 #### 一、iOS UI开发概述 ...通过上述步骤,我们不仅可以了解如何创建基本的视图,还可以学习如何利用这些基本视图来构建复杂的用户界面。这为深入探索iOS UI开发打下了坚实的基础。
任意时刻任意地方向window添加任意数量的view或viewcontroller,其在window的层级很那管理,该demo把所有的view和viewcontroller管理起来。实现向window最后添加的view或viewcontroller在最前面。
在iOS开发中,窗口(Window)与视图(View)是构建用户界面(GUI)的基础元素,本章将深入探讨这两个概念以及相关的编程技术。在iPhone应用开发中,特别是使用Objective-C语言时,理解窗口与视图的工作原理至关重要...
手动控制界面旋转的核心思路就是利用UIView的transform属性,旋转App的根视图。何为根视图?如果你的App的window.rootViewController是UINavigationController,那么根视图就是navigationController.view。
在iOS应用开发中,导航控制器(Navigation Controller)与表视图(Table View)是两个非常重要的组件,它们在构建用户界面时起着至关重要的作用。本文将深入探讨这两个概念,以及它们如何协同工作来提供流畅的用户...
在iOS开发中,"ios独立于window上的button-home键"这个话题主要涉及到的是自定义UI设计和系统交互的实现。通常,iOS设备的Home键是系统级别的,它负责退出应用、唤醒屏幕等核心功能,而作为开发者,我们可能需要在...
在iOS应用开发中,UI设计和用户交互是至关重要的元素,`UIDatePicker`和`Tab Bar`就是其中两个常见的组件。本篇文章将详细讲解如何使用Swift或Objective-C实现`UIDatePicker`控件以及与`Tab Bar`视图间的切换。 ...
本篇指南将从视图(Views)的基本概念入手,深入探讨绘制(Drawing)、文本与图像(Text & Images)以及动画(Animation)等关键领域,旨在为iOS开发新手提供全面且实用的知识体系。 #### 二、视图(Views) ##### 2.1 视图...
这一章深入探讨了iOS中的视图(View)和窗口(Window)系统。讲解了UIView类的层次结构,如何添加、删除和管理视图,以及视图的坐标系统和动画效果。同时,也涵盖了UIResponder响应链的工作原理,它是用户交互的基础...
在iOS开发中,获取视图在屏幕中显示的位置是一个常见的需求,特别是在实现动态布局或交互效果时。本文将详细介绍如何获取iOS应用中视图相对于屏幕的位置,并提供具体的方法实现。 首先,我们需要理解屏幕坐标系统与...
本教程将专注于使用Objective-C或Swift实现iPhone上的多视图切换,特别是通过窗口(Window)和视图(View)的管理来实现这一功能。我们将探讨以下核心知识点: 1. **UIViewController**:在iOS中,UIViewController...
首先,你需要创建一个视图控制器实例,然后将其视图设置为窗口的根视图。 ```objc UIViewController *rootViewController = [[UIViewController alloc] init]; UIWindow *window = [UIApplication ...
然而,"创建一个顶部的window添加到系统的window上"这个描述可能意味着我们需要在状态栏之上添加一个自定义视图。在这种情况下,我们可以创建一个新的`UIWindow`实例,并将其设置为高于主窗口的层级。这样,我们就...
弹出式视图IOS自定义Popup view,Popup Window============ 用法 //custom viewBBJShareAlertView * shareAlertView = [BBJShareAlertView initWithTitle:@"aa" andReferView:nil]; //Popup custom viewself....