Iphone 如何为UITableViewCell设置固定大小';什么是图像视图?

Iphone 如何为UITableViewCell设置固定大小';什么是图像视图?,iphone,ios,cocoa-touch,uitableview,uiimageview,Iphone,Ios,Cocoa Touch,Uitableview,Uiimageview,对于我的应用程序的联系人视图,我在表视图中添加了基于其电子邮件id的个人用户图像。由于每个用户的图像大小不同,图像视图并非对所有用户都是唯一的,有些图像视图的宽度更大,因此我将UItableViewCell的帧大小设置为固定宽度,但宽度大小仍然不同 [cell.imageView setFrame:CGRectMake(0, 0, 55, 55)]; 我该怎么办?是否需要添加新的图像视图作为单元格的子视图?有什么想法吗?您应该设置imageview的属性,以便以不同的大小显示不同的图像 比如

对于我的应用程序的联系人视图,我在表视图中添加了基于其电子邮件id的个人用户图像。由于每个用户的图像大小不同,图像视图并非对所有用户都是唯一的,有些图像视图的宽度更大,因此我将UItableViewCell的帧大小设置为固定宽度,但宽度大小仍然不同

 [cell.imageView setFrame:CGRectMake(0, 0, 55, 55)];

我该怎么办?是否需要添加新的图像视图作为单元格的子视图?有什么想法吗?

您应该设置imageview的属性,以便以不同的大小显示不同的图像

比如说,

<imageview_name>.contentMode = UIViewContentModeScaleAspectFit;
.contentMode=ui视图contentmodescaleaspectfit;

享受编程

UITableView的imageView属性是只读的。在设置为单元格的imageView之前,可以调整图像大小。要调整图像大小,您可以从中获得帮助


另外,如果您是从web环境加载图像,您可以使用我的AFNetworking分支,我在UIImageView扩展中添加了图像大小调整选项

子类UITableViewCell并重写此方法

- (void)layoutSubviews {

    [super layoutSubviews];

    self.imageView.frame = CGRectMake(0,0,55,55);

    //Any additional setting that you want to do with image view

    [self.imageView setAutoresizingMask:UIViewAutoresizingNone];

}

我使用相同的JSON文件填充UITableView,下面是我在CustomCell中用于通用应用程序的内容:

- (void)layoutSubviews {
    [super layoutSubviews];
    if (UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad) {
        self.imageView.frame = CGRectMake(0,0,300,100);

    }else if  (UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone){
        self.imageView.frame = CGRectMake(0,0,180,60);
    }
    float limgW =  self.imageView.image.size.width;
    if(limgW > 0) {

        if (UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPad) {
            self.textLabel.frame = CGRectMake(320,self.textLabel.frame.origin.y,self.textLabel.frame.size.width,self.textLabel.frame.size.height);

        }else if  (UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone){
            self.textLabel.frame = CGRectMake(182,self.textLabel.frame.origin.y,self.textLabel.frame.size.width,self.textLabel.frame.size.height);
        }

    }
}

您需要对tableviewcell子类化。。。遵循此操作确实会固定图像大小,但不幸的是,文本标签不会移动位置以与新图像大小对齐