我在自定义UIImageView
中有UITableViewCell
,我想调整它的大小,我将其视图模式设置为LEFT。要调整大小我正在应用下面的代码。
[cell.IBImage setFrame:CGRectMake(201,12,50,20)];
我的图片宽度为100,我想减少到50,但它仍然显示100宽度。如果我将查看模式设置为Scale To Fill
它可以正常工作,但我希望将它的视图模式设置为LEFT。
完整方法cellForRowAtIndexPath如下所示:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"DetailCell";
DetailCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"DetailCell" owner:self options:nil];
cell = (DetailCell *)[topLevelObjects objectAtIndex:0];
clsDetailResponse *Response = [self.Histories objectAtIndex:[indexPath row]];
[cell.IBUsernameLabel setText:[NSString stringWithFormat:@"%@ %@", Response.Firstname, Response.Lastname]];
[cell.IBImage setFrame:CGRectMake(201, 12, 50, 20)];
return cell;
}
答案 0 :(得分:1)
您正在调整imageView框架的大小而不是图像,以便您可以根据需要裁剪图像,
UIImage *ima = cell.image.image;
CGRect cropRect = CGRectMake(0, 0, 50,20);
CGImageRef imageRef = CGImageCreateWithImageInRect([ima CGImage], cropRect);
[cell.image setImage:[UIImage imageWithCGImage:imageRef]];
CGImageRelease(imageRef);
cell.image.frame=CGRectMake(10, 10, 50, 20);
答案 1 :(得分:0)
在
中的DetailCell类中设置IBImage帧-(void)layoutSubviews:
方法
答案 2 :(得分:0)
将以下行添加到文件所有者,以确保它知道如何响应framechanges。
[self setAutoresizingMask:UIViewAutoresizingFlexibleHeight|UIViewAutoresizingFlexibleWidth];
[self setClipsToBounds:YES];
[self setAutoresizesSubviews:YES];