[英]How to avoid image size changes in UIImageView of UITableViewController in Swift
我正在使用UITableViewController來顯示撲克牌行。 我已將“模式”設置為“ Aspect Fit”,並檢查了情節提要中“剪輯子視圖”中每一行單元格,其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推出各種形狀和尺寸的設備之前,它們就需要提供越來越復雜的方法在半自動的,基於約束的系統中容納所有大小,即使是最簡單的任務也需要大量的開銷。 但是,現在就可以了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.