限制以编程方式设置的UIImage的大小

时间:2011-11-11 02:03:51

标签: iphone cocoa-touch ios5

我正在从Web服务动态加载图像。将加载图片(使用[UIImage imageWithData:data];)并使用UIImageView消息将其置于我的自定义UITableViewCell的{​​{1}}中

。我在界面构建器中将imageView的宽度和高度设置为27乘19,并告诉他“Aspect fit”(尝试所有其他人也是btw),但图像不会这样做。它只是按比例缩放(我认为)来填充视图单元格。

我尝试了很多东西,比如调整图像大小(完成工作,但我可以计算视网膜显示屏上的像素),调整UIImageView的大小...但我只是不明白...有人得到了我知道我做错了什么?

更改单元格的代码:

setImage

这是观点:

Custom tableView cell

设置:

enter image description here

4 个答案:

答案 0 :(得分:0)

如果要调整UIImageView的大小,可以使用frame属性。

假设你在.h文件中有一个UIImageView声明(让我们接受UIImageView *myImage;),它也链接到接口构建器。 你有合成它.m等等。

然后当你想调整UIImageView的大小时,使用

myImage.frame = CGRect(x,y,width,height);

注意:通过在代码中声明宽度和高度,IB中声明的宽度和高度将被覆盖。

然后别忘了将它添加到子视图中,

i.e [self.view addSubview:myImage];

完成后,您可以看到更改。

答案 1 :(得分:0)

如果取消选中“自动调整子视图”会怎样?

答案 2 :(得分:0)

@GuidoH嘿抱歉迟到的回复.. 以下是将图像添加到表格视图单元格的代码。

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
       static NSString *SimpleTableIdentifier = @" SimpleTableIdentifier ";
       UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:   SimpleTableIdentifier];
       if (cell == nil) 
       { 
          cell = [[[UITableViewCell alloc]
          initWithStyle:UITableViewCellStyleDefault reuseIdentifier:SimpleTableIdentifier] autorelease];
       }

      UIImage *image = [UIImage imageNamed:@"star.png"]; 
      cell.imageView.image = image;
      NSUInteger row = [indexPath row]; 
      cell.textLabel.text = [listData objectAtIndex:row];
      return cell;
}

//use this delegate it will increase the row size and thus your imagesize will get increased too.

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
        return 80;   //value can be changed
}

我建议缩放图片肯定会导致应用程序性能下降。

答案 3 :(得分:0)

我刚刚在今天早些时候发布了一个“解决方案”,但这似乎有效,但这是一个错误的假设。在询问IRC后,我找到了真正的解决方案。我使用tag 0,不应该使用那个。将其更改为更高的值确实解决了我的问题。有时它可能很容易。 :)

谢谢你们。