自定义UITableViewCell,可以扩展触摸并包含uitextfield

时间:2009-10-03 14:49:42

标签: iphone cocoa-touch uitableview

我在CustomCell中添加了很多东西,它的工作效果非常好。 但是,有一件事我无法解决..

我的要求是,对于分组的TableView,在点击单个UITableViewCell时,它应该在下面扩展,有点动画并在下面扩展并在该单元格中显示更多信息。

在点击已经扩展的单元格时,它应该返回到“正常”单元格状态。

我在这里的任何方向都会很棒..

另外,看看下面的代码,有一个单元格的变量,我正在向cell.acccessoryVIew添加一个图像,但是,有一些例子,他们编写了在 if(cell == nil){}。

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *kCustomCellID = @"MyCellDetailSym";
    CustomCell *cell = (CustomCell *)[self.tableView dequeueReusableCellWithIdentifier:kCustomCellID];
    if (cell == nil)
    {
        cell = (CustomCell *)[[[CustomCell alloc] initWithFrame:CGRectZero reuseIdentifier:kCustomCellID] autorelease];

    }
    cell.checkNeeded = YES;
    appdelegate *appDelegate = (appdelegate *)[[UIApplication sharedApplication] delegate];
    customClass *nSym = (customClass *)[ArrayCache objectAtIndex:indexPath.row];
    if([appDelegate.sMap containsObject:[NSString stringWithFormat:@"%d",[nSym pKey]]]) { cell.checked=YES; } else cell.checked = NO;
    if([appDelegate.favoriteSymArray containsObject:[NSString stringWithFormat:@"%d",[nSym pKey]]]) { cell.starred=YES; } else cell.starred = NO;
    cell.title = nSym.txtSym;

    UIImage *starredImage = [UIImage imageNamed:@"Star_list_active.png"];
    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
    CGRect frame = CGRectMake(0.0, 0.0, starredImage.size.width + 5 , starredImage.size.height + 5);
    button.frame = frame;

    UIImage *image = (cell.starred) ? starredImage: [UIImage imageNamed:@"Star_list_inactive.png"];
    //UIImage *newImage = [image stretchableImageWithLeftCapWidth:12.0 topCapHeight:0.0];
    [button setEnabled:YES];
    [button setBackgroundImage:image forState:UIControlStateNormal];
    [button addTarget:self action:@selector(checkButtonTapped:event:) forControlEvents:UIControlEventTouchUpInside];
    button.backgroundColor = [UIColor clearColor];
    cell.accessoryView = button;

    return cell;

}

谢谢你们

1 个答案:

答案 0 :(得分:0)

我这样做的方法是调用- (void)insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation:(UITableViewRowAnimation)animation将下一行指定为插入行,并使用UITableViewRowAnimationTop设置动画以创建下拉效果。要完成单元格“扩展”错觉,请确保separatorColor符合您的背景。

不要尝试调用委托方法来调整行高;据我所知,它不会动画。