2013-07-30 3 views
0

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

-(void)btnLikePressed:(UIButton *)sender{ 

    imageDC *objMenu = [dataArray objectAtIndex:sender.tag]; 
    GET_DBHANDLER 
    [dbHandler performSelector:@selector(like_image:) withObject: objMenu.image_id]; 


} 
+1

Что это 'performSelector: withObject:' служить для? Почему бы не просто '[dbHandler like_image: objMenu.image_id]'? Кроме того, соглашение об именах в Objective-C выглядит следующим образом: имя метода и переменной использует camelCaps. '[dbHandler likeImage: objMenu.imageID]'. –

+0

ваша проблема решена> – Rajneesh071

ответ

0

Чтобы ваш метод, чтобы выяснить, точный показатель из ваших UITableViewCell пожалуйста, используйте следующее: -

CGPoint point = [sender convertPoint:CGPointZero toView:_iTableView]; 
NSIndexPath *indexPath = [_iTableView indexPathForRowAtPoint:point]; 

вы получите ваш indexpath. Отсюда вы можете идентифицировать свой UIImageView, надеясь, что вы дали им теги, а затем измените изображение.

+0

не работает железо –

+0

Что не работает ?? – IronManGill

0

Следующие шаги будут работать: -

  1. тег ваш ImageView.
  2. использовать этот код в cellForRowatIndexpath

    NSArray *nib; 
    static NSString *cellIdentifier= @"cell"; 
    
    UITableViewCell *theCell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; 
    
    
    if(theCell== nil) 
    { 
        { 
         nib = [[NSBundle mainBundle] loadNibNamed:<Your cellNibName> owner:self options:nil]; 
        } 
        theCell = [nib objectAtIndex:0]; 
        theCell.selectionStyle = UITableViewCellSelectionStyleNone; 
        // theCell.selectionStyle = UITableViewCellSelectionStyleBlue; 
    } 
    
    UIImageView *imageView=(UIImageView*)[[theCell contentView] viewWithTag:<Your tag>]; 
    

    // делать все, что вы хотите с ImageView

  3. Вы получили вид изображения исх делать то, что вы хотите.

+0

У меня есть изображение на пользовательской ячейке @amar –

+0

Да, возьмите отдельный .xib для пользовательской ячейки и загрузите, что ничто не имеет ничего нового, мы делаем это на ежедневной основе очень просто. – amar

+0

возьмите пустой пользовательский интерфейс, добавьте ячейку tableview, чтобы настроить его и пометить различные компоненты. – amar

0

В функции UITableViewDataSource

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

при установке ячейки просто добавить теги к вашей кнопки и ImageView, а также.

cell.yourBtn.tag = indexPath.row; 
cell.imageView.tag = indexPath.row + 1000(any number); 

теперь в вашем классе UITableViewController

теперь, когда пользователь нажимает на кнопку вы получите кнопку тег, который на самом деле ваш номер строки и ImageView (БТН тег + 1000) тег, а также, что вы можете получить ImageView используя ту же информацию.

-(void)btnLikePressed:(UIButton *)sender{ 

    NSInteger btnTag = [sender tag]; 
    UIImageView *imageView = [yourTableView viewWithTag:btnTag + 1000]; 
    // here your code by using imageView  
} 
+0

Как я могу получить доступ к представлению изображения в событии нажатия кнопки –

+0

@iOSdeveloper Я обновил свой ответ, пожалуйста, посмотрите. – Suryakant

0

попробовать этот пыльник код

-(void)btnLikePressed:(UIButton *)sender{ 

    static NSString *CellIdentifier = @"yourCellName"; 

    UITableViewCell *cell=(UITableViewCell*)[[sender superview] superview]; 

    UITableView *tableView=(UITableView*)[cell superview]; 
    NSIndexPath *path=[tableView indexPathForCell:cell]; 


    yourCellName *selectedCell = (yourCellName*)[tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    [selectedCell.imageView.image setImage:[UIImage imageNamed:@"yourImageName.png"]]; 
} 
+0

не работает Paras joshi –

0

Сначала дайте tagValue вашему ImageView, как вы дали 5 вашему ImageView. Затем нажмите на кнопкуClick.

-(void)btnLikePressed:(UIButton *)sender 
{ 
    UITableViewCell *cell=(UITableViewCell*)[sender superview]; 

    UIImageView*imageView=(UIImageView*)[cell viewWithTag:5]; 

    //Now do whatEver you want to do with your imageview 
} 

EDIT

Если вы добавили ImageView в

[cell.contentView addSubview:imageView]; 

Затем получить Tableview клетку, как этот

UITableViewCell *cell=(UITableViewCell*)[[sender superview] superview]; 
Смежные вопросы