目标C:如何实现ABTableViewCell?

时间:2011-07-04 04:51:29

标签: objective-c ios uitableview

我目前正面临着UITableView的严重滚动性能问题。我的自定义单元格中有以下子视图

  1. 1 X UIImageView
  2. 2 X UILabel
  3. 3 X UIButtons
  4. 我在网上读到,在自定义单元格中有多个子视图会对滚动性能产生严重影响。我找到了ABTableViewCell,但我不确定如何将当前代码移植到它上面。

    我当前代码的片段

    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString* PlaceholderCellIdentifier = @"PlaceholderCell";
        int row = [indexPath row];
        SomeClass *thisClass = [self.someClassArray objectAtIndex:row];
    
        CustomCell* cell = (CustomCell*)[tableView dequeueReusableCellWithIdentifier:PlaceholderCellIdentifier];
        if (cell == nil)
        {
            cell = [[[CustomCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:PlaceholderCellIdentifier] autorelease]; 
    
        //Set Avatar imageview
        UIImageView *avatarView = [[UIImageView alloc]initWithFrame:CGRectMake(5, CELL_SPACING,CELL_AVATAR_WIDTH, CELL_AVATAR_HEIGHT)];
        avatarView.tag = 1;
    
        //Set text Label
    
        UILabel *textLabel = [[UILabel alloc]initWithFrame:CGRectZero];
        textLabel.font = [UIFont fontWithName:@"Helvetica-Bold" size:13.0];
        [textLabel setLineBreakMode:UILineBreakModeWordWrap];
        textLabel.numberOfLines = 0;
    
        textLabel.tag = 2;
    
    
        //Add button1
        UICustomButton *button = [[UICustomButton alloc]init];
        button.tag = 3;
    
    
        [self.contentView addSubview:avatarView];
        [self.contentView addSubview:textlabel];
        [self.contentView addSubview:button];
    
    
    }
    
     //Set Avatar imageview
     UIImageView *thisAvatarView = (UIImageView *)[self.contentView viewWithTag:1];
     thisAvatarView.image = self.dataForCell.user.avatar;
    
     //Set data to text Label
     NSString *text = [NSString stringWithFormat:@"%@",self.dataForCell.text];
     CGFloat answerLabelHeight = [CustomCell getHeightOfLabel:self.dataForCell ofType:@"XXX"];
    
     UILabel *thisTextLabel = (UILabel*)[self.contentView viewWithTag:2];
     [thisTextLabel setFrame:CGRectMake(CELL_TEXT_LEFT_MARGIN, CELL_SPACING+CELL_USERNAMELABEL_HEIGHT+questionLabelheight,CELL_CONTENT_WIDTH - CELL_TEXT_LEFT_MARGIN*1.5, answerLabelHeight)];
    
     thisTextLabel.text = someData;
    
     //Set data to button
     UICustomButton *thisButton = (UICustomButton *)[self.contentView viewWithTag:3];
     [thisButton setButtonWithAnswer:self.dataForCell buttonType:@"like" navcon:self.navcon andFrame:CGRectMake(CELL_TEXT_LEFT_MARGIN, totalCommentLabelHeight + CELL_SPACING*4, 45, CELL_BUTTON_HEIGHT)];
     thisLikeButton.imageView.image = [UIImage imageNamed:@"xxxx.png"];
    

    }

    对于长代码很抱歉,但是有人可以指导我如何开始使用ABTableViewCell进行此实现吗?

0 个答案:

没有答案