以前在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)
}

效果如下:

仅做记录

swif开发之--协议的使用的更多相关文章

  1. usdt钱包开发,比特币协议 Omni 层协议 USDT

    usdt钱包开发 比特币协议 -> Omni 层协议 -> USDT USDT是基于比特币omni协议的一种代币: https://omniexplorer.info/asset/31 I ...

  2. JMeter5.1开发Java协议接口脚本【待完成】

    JMeter5.1开发Java协议接口脚本

  3. 个人微信开发API协议(转)

    安卓微信的api,个人微信开发API协议,微信 ipad sdk,微信ipad协议,微信web版接口api,微信网页版接口,微信电脑版sdk,微信开发sdk,微信开发API,微信协议,微信接口文档sd ...

  4. 【Win 10开发】协议-上篇:自定义应用协议

    就像系统许多内置应用可以通过URI来启动(如ms-settings-bluetooth:可以打开蓝牙设置页),我们自己开发的应用程序,如果需要的话,可以为应用程序自定义一个协议.应用程序协议在安装时会 ...

  5. 【转】iOS 开发之协议protocal-代理传值delegate

    原文网址:http://www.cnblogs.com/wzrong/p/3201938.html 刚开始做iOS开发的时候,对 protocol.delegate 的理解一直都是晕晕乎乎一知半解的状 ...

  6. Web开发——Http协议剖析

    Http,即超文本传输协议,是建立在TCP/IP协议的基础上.在Web开发的过程中,Http协议是十分重要的,浏览器与服务器之间的交互就是基于Http协议的.Http协议如果展开全面讲解会有很多内容, ...

  7. .Net Framework 开发Http协议

    一.Http的基本原理 1.HTTP协议的运作方式 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HTTP协议是基于请求/响应范式的.一个客户机与服务器建立连接后,发送一个请求 ...

  8. 浅谈iOS开发的协议(protocol)和代理(delegate)

    协议和代理对于一个新手来说确实不讨好理解,也有很多的iOS开发的老手对此是懂非懂的.网上的很多博文只是讲了怎么使用,并没有说的很明白.下面我谈一下我的理解. 1.你要先搞明白,协议和代理为什么会出现, ...

  9. iOS 开发之协议-代理传值

    刚开始做iOS开发的时候,对 protocol.delegate 的理解一直都是晕晕乎乎一知半解的状态,不知道两个UIViewController之间怎么进行传值. 面试过几个童鞋,问道怎么用 del ...

随机推荐

  1. 关于Solr6.0中solrj使用简单例子

    solr6.0的solrJ接口有部分变化,下面列出了简单的使用实例,有需要的朋友可以参考下. package com.ailk.solr6; import java.io.IOException; i ...

  2. 在VC中向数据库提交SLQ语句

    1.通过链接对象执行SQL语句 mfc没有提供对ado的操作类,它对ado的操作是通过智能指针来完成,要创建ado连接对象,需要像下面代码一样先定义一个连接对象的智能指针: _ConnectionPt ...

  3. maven打包可以行文件,包含依赖包等

    <build> <!-- 设定打包的名称 --> <finalName>ismp2xy</finalName> <plugins> < ...

  4. JavaHbase连接代码示例

    package com.rokid.hbase; import java.io.IOException; import org.apache.hadoop.conf.Configuration; im ...

  5. HttpClient和HttpURLConnection的区别

    总结了网上的一些资源,主要有以下两个观点: 分析一: 在研究Volley框架的源码中,发现它在HTTP请求的使用上比较有意思,在Android 2.3及以上版本,使用的是HttpURLConnecti ...

  6. c++构造函数中调用构造函数---匿名对象再探

    #include<iostream> #include<string> using namespace std; class Copy_construction { publi ...

  7. jfinal视频目录

    目录-----------------------------------------------------------第一章 简介第二章 JFine2.0 maven demo第三章番外篇 JFi ...

  8. iOS边练边学--通知机制和键盘处理

    一.通知中心(NSNotificationCenter) 每一个程序都有一个通知中心实例,专门负责协助不同对象之间的消息通信 任何一个对象都可以想通知中心发布通知(NSNotification),描述 ...

  9. KBEngine 服务器端-loginapp-协议构建、解析执行详细介绍

    宏宏宏 由于 C++ 是静态语言,不能像 js 一样通过函数名字符串来直接执行函数,所以将 messageId 映射到可执行函数的复杂性大大提升:KBEngine 使用了一系列精巧的「宏」来解决这个问 ...

  10. 【转】iOS-APP如何做才安全

    iOS应用的安全性 常常被大家忽视. iOS 如何做才安全: 1.首先,我们可以通过iTunes 下载 AppStore的ipa文件(苹果 把开发者上传的ipa包 进行了加壳再放到AppStore中) ...