在iOS开发中,如果创建一个自定义的组件通常可以通过继承UIView来实现。下面以一个记分牌组件为例,演示了组件的创建和使用,以及枚举、协议等相关知识的学习。
组件使用:
原文出自: www.hangge.com 转载请保留原文链接: http://www.hangge.com/blog/cache/detail_654.html
效果图如下:
组件代码:ScoreView.swift
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
enum
ScoreType
{
case
Common
//普通分数面板
case
Best
//最高分面板
}
protocol
ScoreViewProtocol
{
func
changeScore(value s:
Int
)
}
class
ScoreView
:
UIView
,
ScoreViewProtocol
{
var
label:
UILabel
!
let
defaultFrame =
CGRectMake
(0,0,100,30)
var
stype:
String
!
//显示”最高分“还是”分数“
var
score:
Int
= 0{
didSet
{
//分数变化,标签内容也要变化
label.text =
"\(stype):\(score)"
}
}
//传入分数面板的类型,用于控制标签的显示
init
(stype:
ScoreType
)
{
label =
UILabel
(frame:defaultFrame)
label.textAlignment =
NSTextAlignment
.
Center
super
.
init
(frame:defaultFrame)
self
.stype = (stype ==
ScoreType
.
Common
?
"分数"
:
"最高分"
)
backgroundColor =
UIColor
.orangeColor()
label.font =
UIFont
(name:
"微软雅黑"
, size:16)
label.textColor =
UIColor
.whiteColor()
self
.addSubview(label)
}
required
init
(coder aDecoder:
NSCoder
) {
super
.
init
(coder: aDecoder)
}
//实现协议中的方法
func
changeScore(value s:
Int
)
{
score = s
}
}
|
组件使用:
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
|
import
UIKit
class
ViewController
:
UIViewController
{
var
score:
ScoreView
!
var
bestscore:
ScoreView
!
override
func
viewDidLoad() {
super
.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
setupScoreLabels();
}
func
setupScoreLabels()
{
score =
ScoreView
(stype:
ScoreType
.
Common
)
score.frame.origin =
CGPointMake
(50, 80)
score.changeScore(value: 0)
self
.view.addSubview(score)
bestscore =
ScoreView
(stype:
ScoreType
.
Best
)
bestscore.frame.origin.x = 170
bestscore.frame.origin.y = 80
bestscore.changeScore(value: 99)
self
.view.addSubview(bestscore)
}
override
func
didReceiveMemoryWarning() {
super
.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
|
原文出自: www.hangge.com 转载请保留原文链接: http://www.hangge.com/blog/cache/detail_654.html