自定义表视图中的图像视图单元格在触摸或滚动后意外调整大小

时间:2016-07-08 09:44:20

标签: ios swift uiimageview

我在表格视图中有一个自定义表格单元格,其中包含图像视图和文本字段的水平堆栈视图...图像视图模式是ScaleAspectFit

当视图最初加载时,视图按原样排列,但是当触摸单元格或滚动表格视图时,图像视图会意外调整大小

以下是截图和我的代码

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("ImagesTableViewCell", forIndexPath: indexPath) as! ImagesTableViewCell

    // Configure the cell...
    let pic = self.patient!.images[indexPath.row]
    cell.imageViewPic.clipsToBounds = true
    cell.imageViewPic.contentMode = .ScaleAspectFit
    cell.imageViewPic.image = getImage(pic.imagePath)
    cell.labelPic.text = pic.caption
    cell.imageViewPic.tag = indexPath.row
    cell.labelPic.tag = indexPath.row

    return cell
}

我尝试了所有内容模式而没有任何好处

initial loading

image in second after touch resizes unexpectedly

Edit2:这是请求的getImage()函数代码

func getImage(filename: String) -> UIImage {
    let path =         getDocumentsDirectory().stringByAppendingPathComponent(filename)
    let image = UIImage(contentsOfFile: path)
    return image!
}

2 个答案:

答案 0 :(得分:0)

clipsToBounds的{​​{1}}属性设置为UIImageView

设置true

同时检查imageview的约束。它应该是cell.imageViewPic.clipsToBounds=truecenter vertical alignleadingfixed width

答案 1 :(得分:0)

尝试以下可能对您有帮助的步骤。

  
      
  1. 使用固定宽度和高度渲染ImageView
  2.   
  3. 制作DECLARE @calc varchar(max) SET @calc = '100*(3/100)' DECLARE @sql nvarchar(max) DECLARE @result float SET @sql = N'SET @result = ' + @calc exec sp_executesql @sql, N'@result float output', @result out SELECT @result 。在故事板或clipSubviews = YES
  4.