gpt4 book ai didi

Swift 错误 convertPoint(CGPoint, to : UITableView)

转载 作者:行者123 更新时间:2023-11-28 10:16:50 25 4
gpt4 key购买 nike

所以我有一个自定义的 tableview,在那个 tableview 中我有一个按钮、一个图像和 2 个标签。这些项目中的每一个都使用 php 填充来自 mysql 服务器的 json 数据。我将我的项目从 Objective-C 转换为 Swift,并在这样做时遇到了这个错误。这是我项目中最重要的代码之一,因为由于用户单击了跟随按钮,它会将数组移动到其他数组,并在这样做时为单元格提供一个特殊的行号,以便所有图像、标签和按钮知道显示哪个。

我尝试将它切换为 .convert() 但只是出现错误,所以我保留了它原来的样子。

按钮的代码

// Follow Button
@IBAction func followButtonClick(_ sender: Any) {

// Adding row to tag
var buttonPosition = (sender as AnyObject).convertPoint(CGPoint.zero, to: self.myTableView)
var indexPath = self.myTableView.indexPathForRow(at: buttonPosition)!

// Creating an action per tag
if indexPath != nil {

// Showing Status Labels
var cell = self.myTableView.cellForRow(atIndexPath: indexPath)!
cell.firstStatusLabel.isHidden = false
cell.secondStatusLabel.isHidden = false

// Change Follow to Following
(sender as AnyObject).setImage(UIImage(named: "follow.png")!, for: .normal)
cell.followButton.isHidden = true
cell.followedButton.isHidden = false
self.myTableView.beginUpdates()

// ----- Inserting Cell to Section 0 -----
followedArray.insert(testArray[indexPath.row], at: 0)
myTableView.insertRows(at: [IndexPath(row: 0, section: 0)], with: .fade)

// ----- Removing Cell from Section 1 -----
testArray.remove(at: indexPath.row)
var rowToRemove = indexPath.row
self.myTableView.deleteRows(at: [IndexPath(row: rowToRemove, section: 1)], with: true)

self.myTableView.endUpdates()

}
}

错误

error picture

新代码错误

图片方便阅读

error

error 3

error 4

最佳答案

convertPoint 在 Swift 3 中被更改为 convert(_:to:)

var buttonPosition = (sender as AnyObject).convert(CGPoint.zero, to: self.myTableView)

检查 Apple Documentation了解更多详情。

编辑:

对于你的第一个警告而不是 usinf indexPath != nil 你需要使用 if let 并且对于那个标签错误你需要将你的单元格转换为你的 customCell使用。

var buttonPosition = (sender as AnyObject).convert(CGPoint.zero, to: self.myTableView)
if let indexPath = self.tblSubscriber.indexPathForRow(at: buttonPosition) {
//Cast your `UITableViewCell` to CustomCell that you have used
var cell = self.myTableView.cellForRow(atIndexPath: indexPath) as! CustomCell
}

对于您的 deleteRows 错误,您需要指定 UITableViewRowAnimation 而不是 truefalse

self.myTableView.deleteRows(at: [IndexPath(row: rowToRemove, section: 1)], with: .automatic)

有关UITableViewRowAnimation的更多详细信息检查文档。

关于Swift 错误 convertPoint(CGPoint, to : UITableView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40458397/

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