swift|swift 设置代理
import UIKit
// 设置代理
protocol SwiftNoDataShowViewDelegate{
funcselectMoreAddAvdio()//代理方法
}
classSwiftNoDataShowView:UIView {
var delegate : SwiftNoDataShowViewDelegate?//外部实现代理
overrideinit(frame:CGRect) {
super.init(frame: frame)
self.addSubview(self.addButton);
self.addSubview(self.lable)
【swift|swift 设置代理】self.backgroundColor=UIColor.white
self.isUserInteractionEnabled=true
}
//懒加载设置的button
lazyvar addButton :UIButton=
{
letaddButton =UIButton()
addButton.setTitle("+ 添加音频", for: .normal)
addButton.setTitleColor(ShowOtherColorType(value:252, value1:102, value2:32), for: .normal) //自定义颜色
addButton.layer.masksToBounds=true
addButton.layer.cornerRadius=10
addButton.layer.borderColor=ShowOtherColorType(value:252, value1:102, value2:32).cgColor
addButton.layer.borderWidth=1.5
addButton.addTarget(self, action:#selector(onButtonClick), for: .touchUpInside)
return addButton
}()
@objcfunc onButtonClick(){
self.delegate?.selectMoreAddAvdio()//代理方法
}
overridefunclayoutSubviews() {
super.layoutSubviews()
self.addButton.frame=CGRect(x:screenWidth/2.0-80, y:KScreenNewValueWidth(Value:150), width:160, height:40)
self.lable.frame=CGRect(x:70, y:self.addButton.frame.maxY+30, width:screenWidth-140, height:60)
}
required init?(coder aDecoder:NSCoder) {
fatalError()
}
}
推荐阅读
- 第6.2章(设置属性)
- 事件代理
- Swift中willSet和didSet的简述
- Hacking|Hacking with iOS: SwiftUI Edition - SnowSeeker 项目(一)
- LeetCode算法题-11.|LeetCode算法题-11. 盛最多水的容器(Swift)
- 设计模式-代理模式-Proxy
- 15、IDEA学习系列之其他设置(生成javadoc、缓存和索引的清理等)
- iOS-Swift-map|iOS-Swift-map filter reduce、函数式编程
- performSelectorOnMainThread:withObject:waitUntilDone:参数设置为NO或YES的区别
- java静态代理模式