gpt4 book ai didi

ios - customFooterView 内的 UISwitch 需要调用使用 Swift 声明的类外部的方法

转载 作者:行者123 更新时间:2023-11-30 12:11:38 24 4
gpt4 key购买 nike

我以编程方式创建了一个自定义TableViewFooter,如下所示:

import UIKit

class CustomFooterView: UIView {

let myLabel: UILabel = {
let label = UILabel()
label.font = UIFont.systemFont(ofSize: 14, weight: UIFontWeightMedium)
label.textColor = UIColor.black
label.numberOfLines = 1
label.text = "Blah blah blah"
label.textAlignment = .center
return label
}()

let mySwitch: UISwitch = {
let mySwitch = UISwitch()
mySwitch.addTarget(self, action: #selector(switchChanged), for: .valueChanged)
return mySwitch
}()

override init(frame: CGRect) {
super.init(frame: frame)

self.setup()
self.layout()
}

required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")

self.setup()
self.layout()
}

private func setup() {

self.addSubview(myLabel)
self.addSubview(mySwitch)
}

private func layout() {
anonymousLabel.constrainCenterVertically()
anonymousLabel.constrainCenterHorizontally()

anonSwitch.constrainCenterVertically()
anonSwitch.constrainTrailing(at: 20)
}

func switchChanged() {
print("hello")
}

}

在实现 UITableView 的类中,我以编程方式添加此页脚:

class MyViewController: UIViewController {

var footerView = CustomFooterView()

override func viewDidLoad() {
super.viewDidLoad()
addFooter()
}

func addFooter() {
tableView.tableFooterView = footerView
}

...
}

目前,我在声明 UISwitch 的类中有方法:switchChanged,我想做的就是将此方法移动到我的 ViewController,这样当用户选择 UISwitch 时,调用我的 ViewController 中的方法。我该怎么做?

最佳答案

这应该有效(正如评论中已经建议的那样)

footerView.mySwitch.addTarget(self, action: #selector(aSelector), for: .valueChanged)

关于ios - customFooterView 内的 UISwitch 需要调用使用 Swift 声明的类外部的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45985545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com