Swift - 使用UIView给页面添加4×4方格
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 UIKitclass 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 UIKitclass 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 UIKitclass 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的页面添加服务器端代码的另一 ...
随机推荐
- Windows VS下搭建cocos2d-x环境搭建
VS2010以上版本(eg:VS2012/VS2013,这里本人用VS2013) 1.环境.安装包准备 2.python安装 3.cocos2d-x安装包解压安装 4.环境变量配置 5.执行setup ...
- Mac编程的官方文档(类似MSDN)
https://developer.apple.com/library/mac/documentation/FileManagement/Conceptual/FileSystemProgrammin ...
- C语言的system函数
这个是与操作系统有关的函数,在linux/unix下system可以运行所有的shell命令windows下system可运行所有的windows执行文件,除DOS命令外,也可运行windwos ...
- ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables opt
mysql跳过权限: mysqld -nt --skip-grant-tables opt 登录:mysql -uroot -p 修改root密码 set password for 'root'@'l ...
- Swift - 如何实现字符串的HMAC_SHA1加密
前段时间有个网友问是否有Swift的HMAC_SHA1算法.这次就专门写篇相关文章进行介绍.要说明HMAC-SHA1,首先要先了解什么是HMAC,什么是SHA. 1,HMAC(散列消息身份验证码:Ha ...
- ios9怎么设置6位密码 ios9设置6位密码图文教程
在原来的 iOS 系统中,只有四位数字密码与复杂密码之分,而在 iOS9 系统中却多出了一个六位数字密码,那ios9怎么设置6位密码,今天小编就为大家带来ios9设置6位密码图文教程 在原来的 i ...
- Android 讲述Help提示框
Android 讲述Help提示框 XML/HTML代码 <stringname="help_dialog_text"> <i>Author:fonter. ...
- Android 系统api实现定位及使用百度提供的api来实现定位
目前在国内使用定位的方法主要是 1. Android系统提供的 LocationManager locationManager = (LocationManager) getSystemService ...
- Redis bio
还是一个很小的模块. bio就是background io的意思,既然要background,就要创建线程,创建几个线程呢?有几种类型的io,就创建几个线程.同一种类型的job需要排队,所以存放各自的 ...
- 公交线路免费api接口代码
描写叙述:本接口主要是依据城市名称 + 线路名称 模糊查找城市公交线路信息. 开源api接口:http://openapi.aibang.com/bus/lines?app_key=keyvalue ...