将 UIButton 添加到数组



我对 Swift 编码比较陌生,我正在更新当前在应用商店中的应用程序。我目前正在为我在 xib 文件中制作的表视图的单元格中的内容创建一个数组。下面是它的样子:

`struct callData {
let cell : Int?
let hotlineName : String?
let phoneNumber : String?
let callBtn : UIButton?
let iconImg : UIImage?
init(cell:Int,hotlineName:String,phoneNumber:String, callBtn:UIButton, iconImg:UIImage) {
self.cell = cell
self.hotlineName = hotlineName
self.phoneNumber = phoneNumber
self.callBtn = callBtn
self.iconImg = iconImg
}
}
class _ViewController: UIViewController, UITableViewDelegate,UITableViewDataSource {
@IBOutlet weak var tableView: UITableView!
var arrayOfCallData = [callData(
cell: 0,
hotlineName:"",
phoneNumber:"",
callBtn:"",
iconImg: #imageLiteral(resourceName: "smartphone")
)]

'

我不确定如何将按钮(callBtn(插入数组(arrayOfCallData(中,而不会提供大量错误。其目的是从应用程序的字符串中调用号码,但我不确定如何实现要调用的按钮的操作。 下面是从应用内调用的代码示例:

let url = NSURL(string: "tel://8004424673")! UIApplication.shared.open(url as URL)

我希望能够将其合并到数组(callBtn(中,以便我可以创建多个可以调用不同号码的按钮。

在您的 callData 中,将您的电话号码保存为 callBtnAction,您可以在选择器方法中将其取回。

public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
let cellIdendifier: String = "CallDataCell"
let cellData = arrayOfCallData[indexPath.row]
let cell : UITableViewCell = tableView.dequeueReusableCell(withIdentifier: cellIdendifier, for: indexPath)
let button = UIButton.init()
button.frame = CGRect.zero //Set your frame here
button.setTitle(cellData.callBtnText, for: UIControlState.normal)
button.tag = indexPath.row
button.addTarget(self, action: Selector(("buttonClicked:")), for: UIControlEvents.touchUpInside)
cell.addSubview(button)
return cell
}
func buttonClicked(sender:UIButton) {
let selectedRow = sender.tag
let callData = arrayOfCallData[selectedRow]
let action = callData.callBtnAction
print(action)
}

单元格应拥有视图(例如按钮(,并且您的数据应用于装饰这些视图。因此,如果从数据中删除 UI 问题(例如,将 UIButton 引用替换为按钮标题字符串(,则可以将该数据应用于cellForRowAt方法中的单元格视图。

最新更新