2013-07-04 3 views
0

У меня есть tableView с индикатором, но когда я нажимаю на кнопку, он показывает smal popwindow изображение. Я хочу, чтобы это изображение было выровнено с ячейкой, если щелкнула ячейка наверху, тогда popup должно отображаться сверху, если ячейка clciked равна middel, тогда согласно этому.Как установить позиции изображения в центр UITableViewCell в iPhone

Прямо сейчас я фиксировал экран в одном положении.

Я хочу сделать, как обычное приложение ipad, когда вы нажимаете любую кнопку кнопки addtoFave, тогда всплывающее окно с кнопками присваивается этой ячейкой любой идеей, как это сделать.

Вот мой текущий код:

- (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]; 

} 

, но это показывает изображение на ячейке один не для всех, когда я нажимаю, когда я нажимаю на другой ячейке это изображение отображается на первой ячейке только я хочу то, что выбранная ячейка это должно быть показано этой ячейке.

+0

Ваш вопрос непонятен. введите код или дополнительную информацию. Это поможет вам. –

+0

вы хотите показать всплывающее окно, где бы вы ни нажимали на ячейку, так ли это? – Mital

+0

@Mital вы правы, я хочу, как вы, как вы просите –

ответ

5

Сначала добавьте эту строку myImageView.center = cell.center; и добавьте myImageView в cell.contentView также.

ИЛИ

Вы также можете поместить этот код для отображения изображения в центре UITableViewCell.

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

это не работает, показывает изображение над ячейкой –

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; 

// в ом

- (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]; 
} 
+0

оно просто отображается для одной ячейки, когда я нажимаю. Я пишу этот код. Сделано так, когда выбранная ячейка отображает это на выбранной ячейке. –

+0

не записывайте этот код в didselect, потому что если вы переместите свой таблица вверх или вниз по части выбора будет обновляться (значит, вы не видите выбранную строку). Кроме того, примените этот код в cellforrow.но вам нужно применить некоторую логику там –

+0

как это сделать, если я напишу это в cellForRow, так что это не сработает для других, так что можно добавить это изображение для просмотра вместо ячейки в тех же позициях, то это может сработать –

1

Это, как я сделал мой UIImageView центрированного с помощью пользовательской UITableViewCell.

Не забудьте добавить этот код в список переопределения func layoutSubviews() {} вашего класса UITableViewCell.

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) 
Смежные вопросы