如何在UITableViewCell中水平居中UIImageView?

时间:2011-08-20 03:41:16

标签: iphone objective-c uitableview uiimageview positioning

我无法在定制的UITableViewCell内水平居中200x200图像。我已将tableViewheightForRowAtIndexPath中的UITableViewDelegate设置为适当的值,但这并不会使我的图像水平居中,而是仅垂直放置(比我想的更好)。我还尝试在我的自定义单元格中更改imageView.framelayoutSubviews的值,但这似乎没有任何效果。我甚至评论过它,把它放在[super layoutSubviews];之前,用框架的值来玩,但我一直得到相同的结果。

任何人都可以帮我吗?我应该编写什么代码来实现这样的效果? 感谢。

2 个答案:

答案 0 :(得分:1)

您将尝试使用此代码帮助您

      You need to subclass UITableViewCell and override layoutSubviews, as follows:

     - (void) layoutSubviews
    {   
        [super layoutSubviews];

        self.imageView.frame = CGRectMake( 10, 10, 50, 50 ); // your positioning here
    }

    In your cellForRowAtIndexPath: method, be sure to return an instance of your new cell type.

答案 1 :(得分:0)

    UITableViewCell *cell = (UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

 UIImageView *imgView; 
 if(cell == nil)
 {
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];

   imgView = [[UIImageView alloc] initWithFrame:(100,0,100,62)];
    [imgView setImage:[UIImage imageNamed:@"img.png"]];
    imgView.tag = 55;
    [cell.contentView addSubview:imgView];
    [imgView release];
 } 
 else
 {
        imgView = (id)[cell.contentView viewWithTag:55];
 }