今天写程序遇到这样一个需求,使用tableView默认cell的样式,即最左边为Image,后面为文字。由于图片大小及样式的需求,需要将ImageView的位置进行改变。但是发现并不能直接通过CGRectMake这样方式进行编辑。最终还是通过画板的形式得到解决。
1<span style="white-space:pre"> </span>CGSize itemSize;
2 if (indexPath.row %2) {
3 itemSize = CGSizeMake(60, 30);
4 }else{
5 itemSize = CGSizeMake(60, 50);
6 }
7 UIGraphicsBeginImageContext(itemSize);
8 CGRect imageRect = CGRectMake(10, 0, itemSize.width-10, itemSize.height);
9 [cell.imageView.image drawInRect:imageRect];
10 cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
11 UIGraphicsEndImageContext();
8行的第一个参数10就是将图片从起始向右移动10px,但是发现图片最后被截掉了一部分。后来发现由于itemSize的x只有60pix,而8行的宽度设置为itemSize.width,因此实际image宽度仍为60,但是是从10px开始,因此超过了itemSize的范围。修改为itemSize.width-10后,成功,问题解决。