如何创建一个空的项目,最早的时候XCode的项目想到中,还有Empty Application template这个选项,后来Apple把它

给去掉了。

我们创建一个单视图项目。

1) 删除main.storyboard

2) 删除ViewController相关文件

3) 删除AppDelegate的所有内容

给你的AppDelegate加入如下内容:

(Objective-C代码)

- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // 指定窗口的根视图控制器
self.window.rootViewController = [UIViewController new];
UIView* mainview = self.window.rootViewController.view; // 将自定义视图增加为窗口根视图控制器视图的子视图
UIView* v = [[UIView alloc] initWithFrame:CGRectMake(,,,)];
v.backgroundColor = [UIColor redColor]; // small red square
[mainview addSubview: v]; // add it to the main view // 使窗口可见
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible]; return YES;
}

(Swift代码-iOS9)

func application(application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
self.window = UIWindow() // 指定窗口的根视图控制器
self.window!.rootViewController = UIViewController()
let mainview = self.window!.rootViewController!.view // 将自定义视图增加为窗口根视图控制器视图的子视图
let v = UIView(frame:CGRectMake(,,,))
v.backgroundColor = UIColor.redColor() // small red square
mainview.addSubview(v) // add it to main view // 使窗口可见
self.window!.backgroundColor = UIColor.whiteColor()
self.window!.makeKeyAndVisible() return true
}

运行结果:

在白色背景下看到一个红色的矩形

如何删除所有子视图?

Apple很奇怪地没有提供这一API,所以我们只好自己干啦。

(Objective-C代码)

for (UIView* v in view.subviews)
[v removeFromSuperview]; // 或者可以这样
[view.subviews makeObjectsPerformSelector:@selector(removeFromSuperview)];

(Swift代码-iOS9)

myView.subviews.forEach {$.removeFromSuperview()}

iOS编程(双语版) - 视图 - 手工代码(不使用向导)创建视图的更多相关文章

  1. iOS编程(双语版) - 视图 - Transform(转换)

    视图有一个transform属性,它描述了应该如何绘制该视图. 该属性是CGAffineTransform结构体,它代表了3 x 3的变换矩阵(线性代数). 下面的代码让两个矩形视图旋转45度 (Ob ...

  2. iOS编程(双语版)-视图-Autolayout代码初步

    一谈到Autolayout,初学者肯定想到的是IB中使用拖拽啊,pin啊各种鼠标操作来进行添加各种约束. 今天我们要聊得是如何利用代码来添加视图间的约束. 我们来看一个例子: (Objective-C ...

  3. iOS编程(双语版) - 视图 - 基本概念

    1. 什么是视图? 视图显示为手机上的一块矩形区域,管理该区域的所有屏幕显示,它是UIView或者UIView的子类. 视图既可以从xib生成,也可以用代码生成. 2. 窗口 窗口是UIWindow或 ...

  4. iOS编程(双语版)-视图-Frame/Bounds/Center

    1. Frame 每个视图都有一个frame属性,它是CGRect结构,它描述了视图所在的矩形在其父视图中的位置. (屏幕坐标系默认的原点在左上角,x轴向右伸展,y轴向下伸展) 设置frame通常通过 ...

  5. iOS 视图控制器 (内容根据iOS编程编写)

    视图控制器是  UIViewController 类或其子类对象.每个视图控制器都负责管理一个视图层次结构,包括创建视图层级结构中的视图并处理相关用户事件,以及将整个视图层次结构添加到应用窗口. 创建 ...

  6. EF 中 Code First 的数据迁移以及创建视图

    写在前面: EF 中 Code First 的数据迁移网上有很多资料,我这份并没什么特别.Code First 创建视图网上也有很多资料,但好像很麻烦,而且亲测好像是无效的方法(可能是我太笨,没搞成功 ...

  7. 转: mysql create view 创建视图

    以下的文章主要是对MySQL视图的描述,其中包括MySQ视图L概述,以及创建MySQL视图-create view与修改MySQL视图--alter view等相关内容的具体描述,以下就是文章的具体内 ...

  8. SQL Server创建视图——视图的作用

    视图简介: 视图可以看作定义在SQL Server上的虚拟表.视图正如其名字的含义一样,是另一种查看数据的入口. 常规视图本身并不存储实际的数据,而仅仅是由SELECT语句组成的查询定义的虚拟表 . ...

  9. MySQL视图的优缺点以及如何创建视图

    视图,虚拟表,从一个表或多个表中导出来的表,作用和真实表一样,包含一系列带有行和列的数据 视图中,用户可以使用SELECT语句查询数据,也可以使用INSERT,UPDATE,DELETE修改记录,视图 ...

随机推荐

  1. 【iOS开发-91】GCD的同步异步串行并行、NSOperation和NSOperationQueue一级用dispatch_once实现单例

    (1)GCD实现的同步异步.串行并行. --同步sync应用场景:用户登录,利用堵塞 --串行异步应用场景:下载等耗时间的任务 /** * 由于是异步.所以开通了子线程.可是由于是串行队列,所以仅仅须 ...

  2. AngularJS双向绑定,手动实施观察

    实现这样的一个需求:页面中某个地方显示某个文本框的值经过计算得到的结果,而且是文本框值每次变化显示的计算结果也跟着动态变化. 在controller中可以声明一个对象,它的一个字段用来存储初始值: $ ...

  3. 解决xib布局方式支持ios6,ios7

    xcode5 中的界面布局 根据sdk 分成ios7.0 and Later 和 ios6.1 and Earlier 两种,那如何xib同时支持 ios6 和ios7 的界面呢 方法如下: 在xco ...

  4. 解决sublime text 3中文乱码问题

    解决中文乱码,需要安装两个插件 一.安装Codecs Ctrl+Shift+P 输入Install Package-->Codecs 二.安装gbk support 菜单:preferences ...

  5. JavaScript:动态代理之远程代理

    背景 2008 第一次使用 AJAX 的时候好像使用的是 AJAX.NET,该组件支持为服务器 C# 类型提供 JS 代理,当时不是十分的明白.设计模式中有代理模式,不过真正需要我们手工写代理的次数却 ...

  6. python测试开发django-40.模型(model)中choices使用

    前言 之前一直在想页面上如果一个字段只有固定的几个选项,类似select下拉框这种,如果在表里面设置一个外键的话,是不是有点傻了,这样为了几个选项弄一张表不值得. 后来看到Django模型中的字段有个 ...

  7. cocos2d-x 3.0 正式版 项目创建

    官方示比例如以下: Example: $ cd cocos2d-x $ ./setup.py $ source FILE_TO_SAVE_SYSTEM_VARIABLE $ cocos new Eng ...

  8. 如何在SpringMVC中获取request对象

    1.注解法 @Autowired private HttpServletRequest request; <listener> <listener-class> org.spr ...

  9. Android判断用户的网络类型(2/3/4G、wifi)

    很多时候需要先判断当前用户的网络,才会继续之后的一些处理逻辑.但网络类型获取这一块,我用我自己的的手机调试时遇到一些问题,这里记录一下. 一加手机一代,移动4G 网络,得到的subtype类型值为17 ...

  10. Android使用代码模拟HOME键的功能

    Intent intent= new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.addF ...