选择单元格时,TableVIew 中的 UIImage 会移动
Posted
技术标签:
【中文标题】选择单元格时,TableVIew 中的 UIImage 会移动【英文标题】:UIImage in TableVIew moves when cell is selected 【发布时间】:2016-09-21 08:58:02 【问题描述】:我有一个包含 UIImage
和标签的动态 tableView。
为了获取一些信息(以填充标签和图像),我进行了一次 get 调用,包括指向图像的链接,这些图像我使用以下代码以编程方式设置为 UIImage
:
代码片段:
if let url = NSURL(string: chiesa.foto) //chiesa.foto is taken from GET req
if let data = NSData(contentsOf: url as URL)
chiesa.image = UIImage(data: data as Data)! //chiesa.image is an UIImage
一切都是正确的,但是当我按下一行时,为了查看细节,图像会向右改变 10-11 px 的位置,当我按下后退按钮(在详细信息视图中)时,图像是仍处于“更改位置”(因此,向右 10-11 像素)。
这是 TableViewController 代码,在“viewDidLoad”方法下(仅从我的数据库中获取数据):
代码片段:
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int
// #warning Incomplete implementation, return the number of sections
return 1
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
// #warning Incomplete implementation, return the number of rows
return chiese.count
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
let cell = tableView.dequeueReusableCell(withIdentifier: "ChieseTableViewCell", for: indexPath) as! ChieseTableViewCell
let chiesa = chiese[indexPath.row]
cell.labelNome.text = chiesa.nome
if(cell.photoImageView == nil)
print("nil")
else
cell.photoImageView.image = chiesa.image
cell.backgroundColor = UIColor.clear
return cell
override func prepare(for segue: UIStoryboardSegue, sender: Any?)
if segue.identifier == "selectedChiesa"
var nextScene = segue.destination as! ChiesaSelezionataViewController
// Pass the selected object to the new view controller.
if let indexPath = self.tableView.indexPathForSelectedRow
let nomeChiesa = chiese[indexPath.row].nome
let storiaChiesa = chiese[indexPath.row].storia
nextScene.nome = nomeChiesa
nextScene.storia = storiaChiesa
【问题讨论】:
使用 didSelectMethod 粘贴代码 @Volodymyr 我没有在我的视图上实现这个“override func tableView(_ tableView: UITableView!, didSelectRowAt indexPath: IndexPath)”方法,因为我遇到了问题(如果实现了,当我选择单元格,它执行 2 segue,我不知道为什么)。 比粘贴方法处理你的水龙头 @Volodymyr 我已经编辑了我的帖子 你说的是连续按压。你如何检查它何时被按下?当您尝试查看详细信息时,我可以看到逻辑吗?我的意思是你的代码 【参考方案1】:已解决:问题是约束。我刚刚更改了一些约束条件,它可以工作!
谢谢@Volodymyr
【讨论】:
以上是关于选择单元格时,TableVIew 中的 UIImage 会移动的主要内容,如果未能解决你的问题,请参考以下文章
Swift - 选择 TableView 单元格时动画(didSelectRowAtIndexPath)
当我点击 2 个 TableView 控制器之间的“didSelectRowAt indexPath”中的单元格时,我需要执行后退按钮操作