加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Swift - 继承UIView实现自定义可视化组件(附记分牌样例)

发布时间:2020-12-14 07:16:34 所属栏目:百科 来源:网络整理
导读:在iOS开发中,如果创建一个自定义的组件通常可以通过继承UIView来实现。下面以一个记分牌组件为例,演示了组件的创建和使用,以及枚举、协议等相关知识的学习。 效果图如下: 组件代码:ScoreView.swift 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
在iOS开发中,如果创建一个自定义的组件通常可以通过继承UIView来实现。下面以一个记分牌组件为例,演示了组件的创建和使用,以及枚举、协议等相关知识的学习。
效果图如下:
组件代码: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 //普通分数面板
Best //最高分面板
}
protocol ScoreViewProtocol {
func changeScore(value s: Int )
}
class ScoreView : UIView , ScoreViewProtocol
{
var label: UILabel !
let defaultFrame = CGRectMake (0,100,30)
stype: String ! //显示”最高分“还是”分数“
score: = 0{
didSet {
//分数变化,标签内容也要变化
label.text = "(stype):(score)"
}
}
//传入分数面板的类型,用于控制标签的显示
init (stype: )
{
label = (frame:defaultFrame)
label.textAlignment = NSTextAlignment . Center
super . (frame:defaultFrame)
self .stype = (stype == Common ? "分数" : "最高分" )
backgroundColor = UIColor .orangeColor()
label.font = UIFont (name: "微软雅黑" label.textColor = .whiteColor()
.addSubview(label)
}
required ?(coder aDecoder: NSCoder ) {
(coder: aDecoder)
}
//实现协议中的方法
)
{
score = s
}
}

组件使用:
31
ViewController UIViewController
score: !
bestscore: !
override viewDidLoad() {
.viewDidLoad()
setupScoreLabels();
}
setupScoreLabels()
{
score = )
score.frame.origin = CGPointMake (50,80)
score.changeScore(value: 0)
.view.addSubview(score)
bestscore = Best )
bestscore.frame.origin.x = 170
bestscore.frame.origin.y = 80
bestscore.changeScore(value: 99)
.view.addSubview(bestscore)
}
didReceiveMemoryWarning() {
.didReceiveMemoryWarning()
}
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读