我在将textLabel和detailTextLabel定位到自定义UITableViewCell时遇到问题,该UITmageView会在textLabel和detailTextLabel后面出现UIImageView。
参考图片 - 它会更有意义 - >您正在寻找一个UITableView,其中每个气泡代表一个不同的UITableViewCell。
基本上,我试图通过扩展气泡尺寸将textLabel和detailTextLabel放入您看到的气泡中。但是,无论我尝试什么,即使我更改UIImageView框架或边界或contentMode,气泡也不会改变它的宽度和高度。
以下是cellForRowAtIndexPath中的相关代码:
//Set font and style
cell.textLabel.backgroundColor = [UIColor clearColor];
cell.detailTextLabel.backgroundColor = [UIColor clearColor];
// Assign our own background image for the cell
UIImage *cellBackgroundImage = [UIImage imageNamed:@"Chat.png"];
UIImageView *cellBackgroundImageView = [[UIImageView alloc] initWithImage:cellBackgroundImage];
//[cellBackgroundImageView setBounds:CGRectMake(0, 0, 20, 20)];
//[cellBackgroundImageView setImage:cellBackgroundImage];
//cellBackgroundImageView.frame = CGRectMake(cellBackgroundImageView.frame.origin.x, cellBackgroundImageView.frame.origin.y, 20, 20);
//cellBackgroundImageView.bounds = CGRectMake(cellBackgroundImageView.frame.origin.x, cellBackgroundImageView.frame.origin.y, 0, 0);
cellBackgroundImageView.contentMode = UIViewContentModeScaleAspectFill;
cellBackgroundImageView.image = cellBackgroundImage;
cell.backgroundView = cellBackgroundImageView;
任何帮助将不胜感激。
答案 0 :(得分:0)
这里不要这样做,我是通过在自定义单元格类的LayoutSubviews方法中编写图像框架和标签来实现的。
只需 - (无效)layoutSubviews {setframe:用于两个UI组件}
答案 1 :(得分:0)
不要使用Aspect FIll,使用scaleToFill,或使用imageCapInsets将图像设置为图像视图。
- (UIImage *)resizableImageWithCapInsets:(UIEdgeInsets)capInsets resizingMode:(UIImageResizingMode)resizingMode
对于你的形象,它必须像
UIImage *cellBackgroundImage = [[UIImage imageNamed:@"Chat.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(20, 70, 40, 20) resizingMode:UIImageResizingModeStretch]