美文网首页
使用Xib自定义多种cell

使用Xib自定义多种cell

作者: PZcoder | 来源:发表于2017-05-17 11:35 被阅读23次

与手写纯代码主要区别:
1、组件初始化拖拽完成
2、VC设置中有变化
3、不需要设置实体类存放属性数据

步骤1、ViewController中设置展示cell

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
        NSDictionary *dic = [self.qiquanArray objectAtIndex:indexPath.section];

//第1种方法,不同cell文件设置
        if ([dic[@"optionType"] isEqualToString:@"S"]) 
        {
            static NSString *CellIdentifier = @"DateOptionCell_S";
            TwoDeBaoCell *cell = (TwoDeBaoCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

            if (nil == cell) 
            {
                cell = (TwoDeBaoCell *)[[[NSBundle mainBundle]loadNibNamed:@"TwoDeBaoCell" owner:self options:nil]lastObject];
            }

//赋值方法
            [cell setValueOfCell:dic];
            return cell;
        }
        
//第2中方法:相同文件中设置不同cell
        DateOptionCell *cell;

        if([dic[@"optionType"] isEqualToString:@"B"])
        {  
            static NSString *CellIdentifier = @"DateOptionCell_B";
             cell = (DateOptionCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

            if (nil == cell)
             {
                cell = (DateOptionCell *)[[[NSBundle mainBundle]loadNibNamed:@"DateOptionCell" owner:self options:nil]objectAtIndex:0];
            }
        }
        else
        {
            static NSString *CellIdentifier = @"DateOptionCell_C";
            cell = (DateOptionCell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

            if (nil == cell)
            {
                cell = (DateOptionCell *)[[[NSBundle mainBundle]loadNibNamed:@"DateOptionCell" owner:self options:nil]lastObject];
            }
        }
        
//界面赋值(也可以使用设置方法,在cell.m中赋值)
        if([dic[@"optionType"] isEqualToString:@"B"])
        {
            cell.buyUpLab.attributedText = [StaticTools compareAngsi:dic[@"currencyPairId"] andAttributedString:dic[@"custcallBid"]];
            cell.sellUpLab.attributedText = [StaticTools compareAngsi:dic[@"currencyPairId"] andAttributedString:dic[@"custcallOffer"]];
            cell.buyDownLab.attributedText = [StaticTools compareAngsi:dic[@"currencyPairId"] andAttributedString:dic[@"custputBid"]];
            cell.sellDownLab.attributedText = [StaticTools compareAngsi:dic[@"currencyPairId"] andAttributedString:dic[@"custputOffer"]];
        }
        else
        { //
            if([dic[@"callorput"] isEqualToString:@"C"]){
                cell.downImgView.hidden = YES;
                cell.downLab.hidden = YES;
                cell.buyLab.attributedText = [StaticTools compareAngsi:dic[@"currencyPairId"] andAttributedString:dic[@"custcallBid"]];
                cell.sellLab.attributedText = [StaticTools compareAngsi:dic[@"currencyPairId"] andAttributedString:dic[@"custcallOffer"]];
            }
            else
            {
                cell.upImgView.hidden = YES;
                cell.upLab.hidden = YES;
                cell.buyLab.attributedText = [StaticTools compareAngsi:dic[@"currencyPairId"] andAttributedString:dic[@"custputBid"]];
                cell.sellLab.attributedText = [StaticTools compareAngsi:dic[@"currencyPairId"] andAttributedString:dic[@"custputOffer"]];
                cell.buyLab.textColor = cell.sellLab.textColor = RGBCOLOR(28, 126, 52);
            }
        }

步骤2、
cell拖拽属性时:方法1比较随意,一般方法即可。
方法2的时候,相同属性拖拽到同一个属性名称上也可以,拖拽不同名称也可以;

注意拖拽后要点击cell视图查看连接,如不成功则需从右侧边栏拖拽到控件上。

具体方法及动图详见博客:http://blog.csdn.net/kepoon/article/details/52302862

相关文章

网友评论

      本文标题:使用Xib自定义多种cell

      本文链接:https://www.haomeiwen.com/subject/dnhdxxtx.html