2017-07-13 30 views
0

我使用Swift 3.0与Xcode 8,我有一些图像调整大小的问题。这里是我设置我的UIImage框架的代码。UIImageView不调整大小

open func setData(_ data: Any?, image: String) { 

    self.textLabel?.font = UIFont.boldSystemFont(ofSize: 10) 
    self.textLabel?.textColor = UIColor(hex: "000000") 
    if let menuText = data as? String { 
     self.textLabel?.text = menuText 
    } 

    self.imageView?.contentMode = UIViewContentMode.scaleToFill 
    self.imageView?.frame = CGRect(x: 12, y: 8, width: 10, height: 10) 
    self.imageView?.image = UIImage(named: image) 
    self.imageView?.clipsToBounds = true 

} 

这里是我在我的tableView中调用我的函数的地方。我没有设置图像的任何问题,但只有调整大小。当我使用较小的图像时,图像更小,当我使用更大的图像时,图像变大,不会调整大小。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = BaseTableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: BaseTableViewCell.identifier) 
     cell.setData(menus[indexPath.row], image: images[indexPath.row]) 
     return cell 
} 
+0

如果是一个默认的表格单元格内的ImageView的那么它可能有一些默认约束调整图像大小。你有没有尝试过制作自己的细胞亚类? –

+0

@mag_zbc现在即将尝试 – DionizB

回答

0

我已经使用这个调整大小功能调整图片的大小,然后将在ImageView的

func imageResize(image:UIImage,imageSize:CGSize)->UIImage 
{ 
    UIGraphicsBeginImageContextWithOptions(imageSize, false, 0.0) 
    [image .draw(in: CGRect(x: 0, y: 0, width: imageSize.width, height: imageSize.height))] 
    let newImage = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext() 
    return newImage! 
} 
1

如果您正在使用的UITableView细胞的默认图像查看比你将不能够解决它调整它的大小。一些默认约束已经存在。

你有两个选择:

  1. 创建的UITableView细胞的一个子类,并使用自己的图像视图(不创建名为ImageView的出口,尝试别的东西)。

  2. 使用https://stackoverflow.com/a/45100626/5383852