我正在使用自定义UITableViewCell(CardCell)制作UITableView。它左边是一个UIImage,右边是UILabel。
我从URL异步下载UIImage,并且Scal UIImage保持图像的宽高比,高度应为50像素,但宽度可以改变(取决于原始宽度和高度) 。我写了一个缩放图像的方法,它工作正常,但我的UILabel与UIImage重叠,如下所示:
我知道Image完全存在,因为当我点击并按住单元格(而不是真正选择单元格)时,我可以看到UILabel下方的Image,如下所示:
这是我为缩放下载的图片所写的代码:
const onlyIf = (condition, value) => condition ? value : null
<ul>
{this.items.map((item, key)=>
<li key={key} ref={onlyIf(item.isActive, 'activeItem')}>
{item.name}
</li>
)}
</ul>
这是下载UIImage的代码,重新调整它(调用前一个函数)并在单元格中设置缩放的UIImage:
func scaleImage(sourceImage: UIImage) -> UIImage {
var oldHeight = sourceImage.size.height
var scaleFactor = 50/oldHeight
var newWidth = sourceImage.size.width * scaleFactor
var newHeight = oldHeight * scaleFactor
UIGraphicsBeginImageContext(CGSizeMake(newWidth, newHeight))
sourceImage.drawInRect(CGRectMake(0, 0, newWidth, newHeight))
var newImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return newImage
}