我正在使用UITableViewController来显示扑克牌行。我已将“模式”设置为“适合宽高比”,并检查了情节提要中“剪辑子视图”中每一行单元格,其ContentView父级以及包含ContentView的单元格中的ImageView。
最初显示该表时,一切看起来都与预期的一样,但是,当我滑动浏览表时,滚动到视图中的一些(不是全部)新行的图像缩放到错误的大小,如图所示。
看来,如果我快速拖动,则会得到更多错误尺寸的行。如果我缓慢拖动,则所有新行都将适当缩放。当我使用其他仿真器时,不正确的缩放比例会使某些图像太大而不是太小,因此整行卡都无法容纳在显示器中。
在代码中,我设置了contentMode和clipToBounds,但是它们似乎没有帮助:
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("LineCell", forIndexPath: indexPath)
let index = indexPath.row % 4
let imagename = "cards\(index)"
let im = UIImage(named: imagename)
cell.contentMode = UIViewContentMode.ScaleAspectFit
cell.clipsToBounds = true
cell.contentView.contentMode = UIViewContentMode.ScaleAspectFit
cell.contentView.clipsToBounds = true
cell.imageView?.contentMode = UIViewContentMode.ScaleAspectFit
cell.imageView?.clipsToBounds = true
cell.imageView?.image = im
return cell
}
我错过了明显的事情吗?谢谢!
我最终以编程方式解决了这个问题。
let cellImage : UIImageView = UIImageView(frame: CGRectMake(0, 0, cell.bounds.size.width, cell.bounds.size.height))
cellImage.contentMode = UIViewContentMode.ScaleAspectFit
cellImage.clipsToBounds = true
cellImage.image = im
cell.addSubview(cellImage)
我仍然想找到一种通过Storyboard进行操作的方法,我记得该方法以前一直以简单的方式工作...早在Apple推出各种形状和尺寸的设备之前,它们就需要提供越来越复杂的方法在半自动的,基于约束的系统中容纳所有大小,即使是最简单的任务,也需要相当多的开销。但是,到目前为止,这是可行的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句