0

i. Я много пробовал, но не смог выполнить успешно. ii. В ячейке tableview необходимо отобразить 3 поля. Один вид изображения, кнопка1 -> фотосъемка, кнопка2 ---> кнопка обзора. iii. В первом представлении таблицы таблиц должна отображаться пользовательская ячейка с одной строкой. iv. Когда пользователь нажимает кнопку «добавить новую кнопку», которая лежит за пределами таблицы, новая строка будет создаваться со всеми тремя полями (вид изображения, кнопка1, кнопка2) v. Количество кликов «добавить новую кнопку», создаст новый строк со всеми выше 3 полями. vi. Я мог бы сделать все выше, что было создано динамически с простым представлением изображения, которое содержит выше 3 полей, но не может работать с пользовательской ячейкой.Динамически добавлять ячейку tableview по одному щелчком кнопки в одном представлении таблицы

vii. Опять мне нужно установить тег каждой ячейки, кнопку broswe, взять кнопку «Фото», чтобы при щелчке значение тега принималось.

+0

Вы должны быть более ясными, чем это. Пожалуйста, обратитесь к другим вопросам, размещенным здесь, и реорганизуйте свой вопрос. – Adithya

ответ

2

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

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

@interface MyViewController()<UITableViewDataSource, UITableViewDelegate> 

@property UITableView *tableView; 
@property NSArray *myCells; 

@end 

@implementation MyViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    self.tableView.delegate = self; // could be done in storyboard 
    self.tableView.dataSource = self; // could be done in storyboard 
    [self addACell]; 
} 
- (void)addCellButtonPressed:(id)sender { 
    [self addACell]; 
} 
- (void)addACell { 
    MyCell *cell = [[MyCell alloc] init]; 
    [cell.button1 addTarget:self action:@selector(cellButton1Pressed:) forControlEvents:UIControlEventTouchUpInside]; 
    [cell.button2 addTarget:self action:@selector(cellButton2Pressed:) forControlEvents:UIControlEventTouchUpInside]; 
    self.myCells = [self.myCells arrayByAddingObject:cell]; 
    [self.tableView reloadData]; // will call the delegate again and refresh cells 
} 
- (void)cellButton1Pressed:(id)sender { 
    MyCell *cellPressed = nil; 
    for(MyCell *cell in self.myCells) { 
     if(cell.button1 == sender) { 
      cellPressed = cell; 
      break; 
     } 
    } 
    // do whatever 
} 
- (void)cellButton2Pressed:(id)sender { 
    MyCell *cellPressed = nil; 
    for(MyCell *cell in self.myCells) { 
     if(cell.button2 == sender) { 
      cellPressed = cell; 
      break; 
     } 
    } 
    // do whatever 
} 
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
    return 1; 
} 
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return self.myCells.count; 
} 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
    return self.myCells[indexPath.row]; 
} 

@end 

 Смежные вопросы

  • Нет связанных вопросов^_^