2017-07-13 195 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

相關問題