这两天写代码遇到了些小问题总结下记录下供参考:
- 很少用xib,今天遇到一个xib崩溃问题
NSUnknownKeyException',
reason: '[<NSObject 0x6000000148b0> setValue:forUndefinedKey:]:
this class is not key value
coding-compliant for the key userNumberLabel
除了检测关联属性是否存在和正确之外
,还可以试着选择如图第二个属性:
- 设置UIImageView背景图片拉伸变形
今天用老大给的一个图作为cell的背景图,要能铺满当前视图并且View不能变形。可以用如下类似代码方法:
UIImage *image = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/fitfun_cell_bg.png",ffBundle.bundlePath]]; // 设置端盖的值
//防止图片拉伸变形
CGFloat top = image.size.height * 0.5;
CGFloat left = image.size.width * 0.5; CGFloat
bottom = image.size.height * 0.5;
CGFloat right = image.size.width * 0.5; // 设置端盖的值
UIEdgeInsets edgeInsets = UIEdgeInsetsMake(top, left, bottom, right); // 设置拉伸的模式
UIImageResizingMode mode = UIImageResizingModeStretch; // 拉伸图片
UIImage *newImage = [image resizableImageWithCapInsets:edgeInsets resizingMode:mode];
UIImageView *imageView = [[UIImageView alloc]initWithImage:newImage];
//imageView.contentMode = UIViewContentModeScaleAspectFit;
cell.backgroundView = imageView;
今天我又试着xib里面添加个imageView,为了让图片不变形,我在xib里面看到了如下属性stretching
,可以通过调整stretching
的值,达到同样效果:
- 改变
cell.imageView.image
显示的图片的大小
有个需求cell最左边显示图片,我不想添加多余的视图,就用了cell.imgeView
来实现,刚开始实现发现添加的图片太大,无法通过cell.imgeView.frame
属性改变,因为你设置了不起作用,可以通过获取上下文方式改变。类似代码如下:
UIImage *cellImage = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@",ffBundle.bundlePath,cellImageName]];
CGSize itemSize = CGSizeMake(25, 25);//希望显示的大小
UIGraphicsBeginImageContextWithOptions(itemSize, NO, UIScreen.mainScreen.scale);
CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height);
[cellImage drawInRect:imageRect];
cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
- Xib 在UIImageView无法添加subViews
不管我怎么拖拽,发现用无法再UIImageView其上面通过xib添加子视图,然后网上查了,发现确实无法添加,只能通过代码添加了。具体可参考别人的回答
网友评论