以前在oc构建的项目中,如果这个页面需要构建一些指定的页面,一般我会重新创建个集成与UIView的类,然后同时创建XXX.xib文件,然后直接在上面拖拽控件,非常快速,当然也可以手动布局!个人更喜欢可视化布局!

在swift下,其实实现的逻辑也是一样的,布局风格也相仿,里面加了一个代理传值,

具体代码如下:

1,新建一个集成与UIView的类

import UIKit

//创建枚举
enum ScoreType{
case common //普通分数面板
case best //最高分数板
} //代理协议的使用
protocol ScoreViewProtocol{
func changeScore(value s:Int)
} class ScoreView: UIView,ScoreViewProtocol { var scoreLab:UILabel! let defaultFrame = CGRect(x:,y:,width:,height:)
var stype:String!
var score:Int = {
didSet{
//分数变化,标签内容也要变化
scoreLab.text = "\(String(describing: String(stype))):\(score)"
}
} //传入分数面板的类型,用于控制标签的显示
init (stype:ScoreType)
{
scoreLab = UILabel(frame:defaultFrame)
scoreLab.textAlignment = .center
super.init(frame:defaultFrame)
self.stype = (stype == .common ? "我的":"你的") backgroundColor = UIColor.orange
scoreLab.font = UIFont(name:"微软雅黑",size:)
scoreLab.textColor = UIColor.white
self.addSubview(scoreLab)
} required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
} //实现协议中的方法
func changeScore(value s:Int)
{
score = s
} }

2,在vc里面具体调用

var score:ScoreView!
var bestscore:ScoreView!

具体实现:

func initScoreView(){
score = ScoreView(stype:.common)
score.frame.origin = CGPoint(x:,y:)
score.changeScore(value: )
self.view.addSubview(score) bestscore = ScoreView(stype:.best)
bestscore.frame.origin.x =
bestscore.frame.origin.y =
bestscore.changeScore(value: )
self.view.addSubview(bestscore)
}

效果如下:

仅做记录

最新文章

  1. Ehcache BigMemory: 摆脱GC困扰
  2. (转)解决Android SDK Manager无法更新或下载太慢问题
  3. MySQL的分页
  4. thinkphp开发技巧经验分享
  5. Lua xavante WEB server实现xmlrpc服务器端
  6. ubuntu 12.04安装TP-LINK TL-WN725N v2
  7. Hibernate注解:一对一主键关联
  8. Media Player(APP)
  9. zabbix 启用分区表后需要关闭Housekeeper
  10. WEB网站性能优化
  11. markown编辑器截图粘贴预览,并将图片传至七牛云
  12. Unix/Linux中的grep命令(转)
  13. Linux centos ssh
  14. 2018-2019-2 实验二 Java面向对象程序设计
  15. [十一]基础数据类型之Character
  16. beamer插入图片的一些技巧
  17. 如何强制关闭LODOP或c-lodop已经弹出的预览窗口
  18. Centos6.8下卸载软件(以Mysql为例)
  19. exec与match方法的区别
  20. 对于目标识别的一些idea-传递特征的position而不是特征或特征图

热门文章

  1. vue2.0的学习
  2. [流水账]搜索与web-container版本匹配的jar包
  3. 使用supervisor过程中的一个问题
  4. mysql sleep进程 过多
  5. range() 函数详解 python
  6. VBA学习笔记(2)--新建word文档并插入文字
  7. MFC中Carray的使用
  8. Linux mdev 热拔插配置
  9. [sz,rz]使用sz/rz在两台Linux设备之间传输数据
  10. [爬虫]Python爬虫进阶