如何在iPhone中将图像视图的位置设置为UITableViewCell的中心

时间:2013-07-04 06:48:14

标签: ios objective-c ipad uitableview

我有tableView with Indicator但是当我点击按钮它显示小popwindow图像我希望该图像应该与单元格对齐如果点击单元格在顶部然后弹出窗口应该显示在顶部如果单元格clciked是middel然后根据该

现在我已在屏幕上固定了一个位置。

当你按下任何单元格按钮addtoFave时,我想像普通的ipad应用程序那样制作,然后用按钮弹出按钮与任何想法如何完成。

这是我目前的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

    NSLog(@"ContentID %@",contentID);

    CustomCell *cell  = (CustomCell *) [tblSimpleTable cellForRowAtIndexPath:indexPath];

    UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 312, 105)];
    imgView.frame = CGRectMake((cell.frame.size.width/2)-(imgView.frame.size.width/2),  (cell.frame.size.height/2)-(imgView.frame.size.height/2), 312, 105);

    imgView.image=[UIImage imageNamed:@"popupj.png"];

    [cell addSubview:imgView];

}   

但这显示单元格上的图像并非全部当我点击其他单元格时,此图像仅显示在第一个单元格上我希望选择的单元格应该显示在该单元格中。

3 个答案:

答案 0 :(得分:5)

首先添加此行myImageView.center = cell.center;并在myImageView中添加cell.contentView

您也可以将此代码显示在UITableViewCell的中心。

myImageView.center = CGPointMake(cell.contentView.bounds.size.width/2,cell.contentView.bounds.size.height/2);

答案 1 :(得分:1)

//如果你想在中心的任何视图上显示任何子视图..试试这个..从下面选择选项1

//选项1:

   UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
   imgView.frame = CGRectMake((cell.frame.size.width/2)-(imgView.frame.size.width/2), (cell.frame.size.height/2)-(imgView.frame.size.height/2), 50, 50);
   [cell addSubview:imgView];

//选项2:

//在.h

int selectedRow;

//在.m

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (indexPath.row == selectedRow)
    {
       UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
       imgView.frame = CGRectMake((cell.frame.size.width/2)-(imgView.frame.size.width/2), (cell.frame.size.height/2)-(imgView.frame.size.height/2), 50, 50);
       imgView.image = [UIImage imageNamed:@"Select.png"];
       [cell addSubview:imgView];
       [imgView release];
       imgView = nil;
    }
    else
    {
       UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 50, 50)];
       imgView.frame = CGRectMake((cell.frame.size.width/2)-(imgView.frame.size.width/2), (cell.frame.size.height/2)-(imgView.frame.size.height/2), 50, 50);
       imgView.image = [UIImage imageNamed:@"UnSelect.png"];
       [cell addSubview:imgView];
       [imgView release];
       imgView = nil;

    }
}


- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
     selectedRow = indexPath.row;
     [tableview reloadData];
}

答案 2 :(得分:1)

这就是我使用自定义UITableViewCell使我的UIImageView居中的方式。

请务必将此代码添加到UITableViewCell类的override func layoutSubviews(){}部分。

    var cellHeight:CGFloat = 150
    self.imageLogo.frame = CGRectMake(0, 0, 125, 125)
    self.imageLogo.center = CGPoint(x: self.center.x, y: cellHeight / 2)
    self.imageLogo.image = Common.school_crest_image
    self.imageLogo.contentMode = UIViewContentMode.ScaleAspectFit
    self.addSubview(self.imageLogo)