【问题标题】:frame.origin Change error on View when Table Cell selectedframe.origin 选择表格单元格时视图上的更改错误
【发布时间】:2015-08-24 19:47:25
【问题描述】:

预期行为
一个点击表格单元格将向上滑动一个视图(高度为 250 像素)进入视图。点击另一行将更新与点击的行对应的视图信息。点击同一行将向下滑动视图。


发生的错误

  1. 第一次点击被识别(frame.origin 的数学变化),但视图移动。需要再次点击同一单元格才能使视图向上滑动(frame.origin 的数学运算相同)。
  2. 点击另一行会将视图移回屏幕底部,即使未调用该操作来隐藏信息视图。


上下文
信息视图具有将其置于超级视图/屏幕底部的约束。


代码示例

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { self.localTableView.deselectRowAtIndexPath(indexPath, 动画: true) self.mapView.selectAnnotation(self.players[indexPath.row], animated: true) self.populateInfoView(indexPath.row) if(self.infoView.frame.origin.y == UIScreen.mainScreen().bounds.size.height){ self.showInfoView(true) } else if (self.previouslySelectedRow == indexPath.row){ self.hideInfoView(true) } self.previouslySelectedRow = indexPath.row } func populateInfoView(index: Int){ self.infoCoverImage.image = UIImage(named: "\(self.players[index].profileImage)") self.infoProfileImage.image = UIImage(named: "\(self.players[index].profileImage)") self.infoPlayerName.text = self.players[index].name self.infoTwitterName.text = self.players[index].twitterName } func showInfoView(animated: Bool){ let height = self.infoView.frame.size.height let yPos = UIScreen.mainScreen().bounds.size.height - height UIView.animateWithDuration(0.33, animations: { self.infoView.frame.origin.y = yPos }, completion: { finished in println("Always called, even if the frame does not move") }) self.infoVisible = true } func hideInfoView(animated: Bool){ let height = self.infoView.frame.size.height let yPos = UIScreen.mainScreen().bounds.size.height if(animated == true){ UIView.animateWithDuration(0.25, animations: { self.infoView.frame.origin.y = yPos }) } else { self.infoView.frame.origin.y = yPos } self.infoVisible = false }


任何帮助将不胜感激。谢谢,

【问题讨论】:

    标签: swift uitableview view


    【解决方案1】:

    [已解决] - 问题的产生是因为我们使用了 frame.origin 而不是约束。如果您希望视图保持不变,请使用约束。如果您有可重复的类似精灵的动画,请使用原点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-27
      • 1970-01-01
      • 2015-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多