cellForRowAtIndexPath, возвращающий пользовательскую ячейку? - PullRequest
0 голосов
/ 19 июля 2011
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // ...
    PlanetTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"PlanetCell_ID"];
    return cell;
}

Если вы создаете пользовательский UITableViewCell (в данном случае PlanetTableViewCell), допустимо ли возвращать этот объект с помощью метода, возвращающего (UITableViewCell *), или мне нужно что-то еще делать?

Ответы [ 3 ]

1 голос
/ 19 июля 2011

Если вы создаете пользовательский UITableViewCell (в данном случае PlanetTableViewCell), допустимо ли возвращать этот объект с помощью метода, возвращающего (UITableView *), или есть что-то еще, что я должен сделать?

Возможно, вы имели в виду:

для возврата этого объекта с помощью метода, возвращающего (UITableViewCell *),

Если это так, то это вполне законно и разумно.1011 *

Действительно, ваш PlanetTableViewCell является производным от UITableViewCell, все экземпляры PlanetTableViewCell также имеют тип UITableViewCell (отношение is-a в ООП).

0 голосов
/ 11 сентября 2015

Использование пользовательской ячейки

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *simpleTableIdentifier;
    if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
    {
        simpleTableIdentifier = @"dashboard_logintimeCell_ipad";
    }
    else
    {
        simpleTableIdentifier = @"dashboard_logintimeCell";
    }
    dashboard_logintimeCell *cell = (dashboard_logintimeCell *)[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
    if (cell == nil)
    {
        NSArray *nib =[[NSBundle mainBundle]loadNibNamed:simpleTableIdentifier owner:self options:nil];
        cell = [nib objectAtIndex:0];
    }
/*here you cell object get
like
cell.lable.text=@"yourlabeltext";
*/

    cell.backgroundColor=[UIColor clearColor];
    return cell;
}
0 голосов
/ 19 июля 2011

Да, это верный способ вернуть ячейку.

Но вы также должны проверить, возвращает ли ваша «очередь» действительный объект ячейки. Если нет, вам нужно создать его.

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

Пример кода:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    // ...
    PlanetTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"PlanetCell_ID"];

    if (cell == nil) {

        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }

    cell.titleLabel.text = @"Cell Title";
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    return cell;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...