Swift - 继承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
|
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.
}
}
|
转载于:https://www.cnblogs.com/Free-Thinker/p/4838391.html
Swift - 继承UIView实现自定义可视化组件(附记分牌样例)相关推荐
- 已知一个掺杂了多个数字字符的中文名拼音,去掉所有数字字符之后,形式为“名”+空格+“姓”;并且名和姓的首字母大写,其他小写,要求输出姓名全拼,且全为小写。(后附详细样例说明)
已知一个掺杂了多个数字字符的中文名拼音,去掉所有数字字符之后,形式为"名"+空格+"姓":并且名和姓的首字母大写,其他小写,要求输出姓名全拼,且全为小写.(后附 ...
- java 泛型向下转型_Java向上转型和向下转型(附具体样例)
Java向上转型和向下转型(附具体样例) 熬夜整理的关于Java向上和向下转型的样例,很的通俗易懂哦~~~~ 一.向上转型 package com.sheepmu; class Animal { pu ...
- flex 自定义可视化组件的超级鸡肋的属性设置
虽然前段时间以乔布斯为首的几位大侠对 flash 的安全.性能等进行了强烈的批评,而且伴随着 html5 的日趋完善,可能这种批评声会越来越大,甚或超过南非世界杯呜呜组啦的分贝,但是个人认为 flex ...
- C语言 数据结构 图的邻接矩阵存储 基本操作(附输入样例和讲解)
代码参照了严蔚敏.吴伟民编写的数据结构(C语言版). 部分内容参考了这位大佬: https://blog.csdn.net/jeffleo/article/details/53326648 所有代码采 ...
- 父子进程管道通信(附简单样例)
0x00思路 为了给TinyHTTPd源码分析打下基础,先写一个简单父子进程管道通信的样例 1,先定义,并绑定read,write函数和缓冲区,创建pipe管道数组(下标0对于读段,1对应写端,这是强 ...
- C语言必知-指针数组(附程序样例和详解)
指针数组 除了类型之外,指针变量和其他的变量很相似,只不过加上指针标识就行 例如int *api[10],由于下标引用的优先级高于间接访问(就是解引用),因此 api是一个数组,数组中的元素的类型就是 ...
- 可视化大屏原型图解决方案附axure可视化组件库
现在越来越多的数据展示方式采用了可视化大屏的策略,对数据项进行图表或者动态的展示.在没有产品原型的情况下,怎么制作一个简易的原型呢? 这里提供三种方式制作简易demo: 第一种:原生html+js实现 ...
- 辅助图分析人员的自定义图数据可视化组件
图数据处理与可视化 一.可视化效果 二.neo4j的数据封装 三.将封装好的数据转换为d3.js格式并写入文件 四.启动http服务加载文件数据 五.使用HTML可视化图数据 在图数据处理过程中,如果 ...
- python代码示例图形-纯干货:手把手教你用Python做数据可视化(附代码)
原标题:纯干货:手把手教你用Python做数据可视化(附代码) 导读:制作提供信息的可视化(有时称为绘图)是数据分析中的最重要任务之一.可视化可能是探索过程的一部分,例如,帮助识别异常值或所需的数据转 ...
- Unity自定义UI组件(十一) 雷达图、属性图
前言 借用梦想世界宠物属性图 想必大家都在游戏中见过属性图用于展示多种属性的数值,可以较为直观的对比某种属性的缺陷或者是哪种属性有优势.在三维可视化领域也会遇到类似的属性对比,用属性图来展示最为合适. ...
最新文章
- 真正厉害的 AI,从来不走「捷径」
- php中单引号和双引号的区别,哪个速度更快?为什么?
- python 依据某几列累加求和_Python爬虫笔记:爬取单个页面
- Oracle原理:11g中的网络配置
- c语言中tgx是什么函数,《高等数学》课后练习题
- php屏幕共享功能,利用无线投屏技术同屏直播,精彩随时共享
- cisco 2960-24 配置(生产环境)
- js浏览器对象模型(BOM)
- nginx html解析插件,nginx配置信息的解析流程
- 黄聪:【强烈推荐】搜索引擎排名决定一切吗!
- Spring : Spring 深入理解lombok
- mysql性能优化总结详解:MySQL数据库从原理到高性能实战
- VSS2005的安装与配置
- android 修改 dpi_努比亚 Z11|魔趣100|安卓10.0|归属地|机型修改|性能调整|稳定流畅...
- SCSI硬盘系统无法启动取数据办法
- 实时网速怎么看快慢_iQOO怎么显示网速 网络状态实时查看
- 敏捷模式下携程的接口自动化平台演变
- composer安装fxp/composer-asset-plugin
- Linux 云服务器aircrack-ng后台跑包并用邮件发送结果
- 使用批处理进行简单U盘杀毒 - TEST