1,下面是一个利用UIView来给页面上绘制灰色方块的例子,效果图如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
import UIKit
class ViewController : UIViewController {
//游戏方格维度
var dimension: Int = 4
//数字格子的宽度
var width: CGFloat = 50
//格子与格子的间距
var padding: CGFloat = 6
//保存背景图数据
var backgrounds: Array < UIView >!
override func viewDidLoad()
{
super .viewDidLoad()
self .backgrounds = Array < UIView >()
//改成主视图背景白色背景
self .view.backgroundColor = UIColor .whiteColor()
setupGameMap()
}
func setupGameMap()
{
var x: CGFloat = 50
var y: CGFloat = 150
for i in 0..<dimension
{
println (i)
y = 150
for j in 0..<dimension
{
//初始化视图
var background = UIView (frame: CGRectMake (x, y, width, width))
background.backgroundColor = UIColor .darkGrayColor()
self .view.addSubview(background)
//将视图保存起来,以备后用
backgrounds.append(background)
y += padding + width
}
x += padding+width
}
}
override func didReceiveMemoryWarning() {
super .didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
} |
2,进阶版 - 继承UIView实现自定义方块组件(有颜色和数字)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
import UIKit
class TileView : UIView {
//颜色映射表,不同的数字颜色不同
let colorMap = [
2: UIColor .redColor(),
4: UIColor .orangeColor(),
8: UIColor .yellowColor(),
16: UIColor .greenColor(),
32: UIColor .brownColor(),
64: UIColor .blueColor(),
128: UIColor .purpleColor(),
256: UIColor .cyanColor(),
512: UIColor .lightGrayColor(),
1024: UIColor .magentaColor(),
2048: UIColor .blackColor()
]
//在设置值时,更新视图的背景和文字
var value: Int = 0{
didSet {
backgroundColor = colorMap[value]
numberLabel.text= "\(value)"
}
}
var numberLabel: UILabel !
//初始化视图
init (pos: CGPoint , width: CGFloat , value: Int )
{
numberLabel = UILabel (frame: CGRectMake (0,0, width, width))
numberLabel.textColor = UIColor .whiteColor()
numberLabel.textAlignment = NSTextAlignment . Center
numberLabel.minimumScaleFactor = 0.5
numberLabel.font = UIFont (name: "微软雅黑" , size:20)
numberLabel.text = "\(value)"
super . init (frame: CGRectMake (pos.x, pos.y, width, width))
addSubview(numberLabel)
self .value = value
backgroundColor = colorMap[value]
}
required init (coder aDecoder: NSCoder ) {
super . init (coder : aDecoder)
}
} |
使用:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
import UIKit
class ViewController : UIViewController {
//游戏方格维度
var dimension: Int = 4
//数字格子的宽度
var width: CGFloat = 50
//格子与格子的间距
var padding: CGFloat = 6
//保存背景图数据
var backgrounds: Array < TileView >!
override func viewDidLoad()
{
super .viewDidLoad()
self .backgrounds = Array < TileView >()
//改成主视图背景白色背景
self .view.backgroundColor = UIColor .whiteColor()
setupGameMap()
}
func setupGameMap()
{
var x: CGFloat = 50
var y: CGFloat = 150
for i in 0..<dimension
{
println (i)
y = 150
for j in 0..<dimension
{
//随机2的1~11次方
var val: Int = 2<< Int (arc4random_uniform(10))
//初始化视图
var background = TileView (pos: CGPoint (x:x,y:y), width: self .width, value: val)
self .view.addSubview(background)
//将视图保存起来,以备后用
backgrounds.append(background)
y += padding + width
}
x += padding+width
}
}
override func didReceiveMemoryWarning() {
super .didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
} |
Swift - 使用UIView给页面添加4×4方格的更多相关文章
-
swift为UIView添加extension扩展frame
添加swift file:UIView+Extension import UIKit extension UIView { // x var x : CGFloat { get { return fr ...
-
swift关于UIView设置frame值的extension
swift关于UIView设置frame值的extension 使用 说明 1. 使用如上图,很简单,不再赘述 2. 在extension给添加的计算属性提供getter,setter方法即可 源码 ...
-
在Magento System Configuration页面添加配置项
以 Jp_Coupon 模块为例: 目标: 在 System configuration 页面添加一个 JP tab, 在JP中添加 Coupon section, 然后给 Coupon sectio ...
-
如何在MVC_WebAPI项目中的APIController帮助页面添加Web测试工具测试
本文转载自:http://www.cnblogs.com/pmars/p/3673811.html 先看效果图: 以下是原文: 如何在帮助页面添加测试工具 上一篇我在ASP.NET里面添加了一个Hel ...
-
如何给你的ASP.NET页面添加HelpPage
如何给你的ASP.NET页面添加HelpPage 最近写了一些webAPI,所以需要搞一套API的帮助文档,google了一下,发现这是可以自动生成的,以下就是如何自动生成HelpPage的说明. 参 ...
-
Magento给新产品页面添加分页
本文介绍如何让magento创建一个带分页功能的新到产品页面,方便我们在首页或者其它CMS Page调用和展示新到产品. 在Magento我们经常有的做法是建立一个可以调用新产品的block,然后通过 ...
-
如何给magento的产品页面添加返回按钮
如何给magento的产品页面添加返回按钮,最模板提供教程 第一步: 打开 E:\xampp\htdocs\magento\skin\frontend\default\bluescale\css\st ...
-
sharepoint 2010 页面添加footer方法 custom footer for sharepoint 2010 master page
转:http://blog.csdn.net/chenxinxian/article/details/8720893 在sharepoint 2010的页面中,我们发现,没有页尾,如果我们需要给页面添 ...
-
向SharePoint页面添加后台代码
转:http://www.cnblogs.com/chenzehe/archive/2009/12/25/1631863.html 在本文中,我将跟大家一起讨论,为MOSS的页面添加服务器端代码的另一 ...
随机推荐
-
Wrangle – 响应式的,触摸友好的多选插件
Wrangle 是一个响应式,触摸友好的选择插件,支持 jQuery 以及 Zepto.Wrangle 为多项选择提供了一个独特的方法:通过画一条贯穿项目的线条来选择项目.它给你的应用程序的一种新的方 ...
-
如何为Eclipse设置代理
看图,不解释:
-
oracle ORA-01747(系统保留关键字)user.table.column, table.column 或列说明无效 hibernate映射oracle保留关键字
1.查询系统关键 select * from v$reserved_words 确认你使用的是否为关键字: select * from v$reserved_words w where w.KEYWO ...
-
***php(codeigniter)中如何重定向
Q: 在保存完数据之后需要重定向,防止数据重复提交. 我使用$this->方法名();跳转,发现不能达到重定向的效果(地址栏没变) 请教高手重定向怎么用 A: $this->load-&g ...
-
DELL笔记本拆机添加内存条
在笔记本后面拧开7个螺丝 然后打开后盖 掰开卡口,内存条会弹出,此时按住内存条两侧的缺口往外用力就可以拔出内存条. 装入内存条时,先插入内存条,按下即可.
-
关于es6的箭头函数使用与内部this指向
特型介绍:箭头函数是ES6新增的特性之一,它为JS这门语言提供了一种全新的书写函数的语法. 'use strcit'; let arr = [1,2,3]; //ES5 let es5 = arr.m ...
-
ionic框架前端生产环境的简单部署
1. 效果对比 1.1 开发环境 css+js+lib文件大小为好多M :) 1.2 部署环境(生产环境) css+js+lib文件大小约为800K 文件大小:好多M–>800K(多少自己试下) ...
-
tomcat启动闪退问题
tomcat的bin->setclasspath.bat文件中 将两个set加上,并且将if not “%JAVA_HOME%”放到%JRE_HOME%上面.
-
Java离线人脸识别SDK 支持arcface 2.0 最新版
虹软人脸识别SDK之Java版,支持SDK 1.1+,以及当前最新版本2.0,滴滴,抓紧上车! JDK SDK Win release license status 前言 由于业务需求,最近跟人脸识别 ...
-
关于C_Sharp集中处理异常
1.写在前面 “异常意味着什么?”,想必不用对此做多余的解释,我们有理由相信在任何情况下任何应用程序都有可能出现异常,若在程序中没有对异常进行处理,则操作系统会以粗暴的方式处理掉它(弹出错误提示框), ...