iOS表格视图单元格在滚动后不绘制第一个元素

时间:2013-09-12 10:30:30

标签: ios uitableview

我创建了一个带有CAGradiantLayer背景的表视图。 然后我在TableViewCell中创建了标签并给它们标签。 现在是我的问题,滚动后的下一个单元格不会出现。看起来下一个单元格正在透支或者没有从UITableViewCell的子类中获取属性。但是那个细胞出现后的细胞。如果我删除bgLayer它的工作原理。我不知道为什么。

这是UITableView的子类

- (void)drawRect:(CGRect)rect
{
    NSArray *count = [Elements getElements];
    CGFloat height = count.count * 44;
    CGRect newRect = rect;
    CAGradientLayer *bgLayer = [BGLayer getGreyGradient];
    newRect.size.height = height;
    bgLayer.frame = newRect;
    [self.layer insertSublayer:bgLayer atIndex:0];

这来自UITableViewCell

- (void)setSelected:(BOOL)selected animated:(BOOL)animated
{
    UIView *bg = [[UIView alloc] init];
    self.opaque = NO;
    self.backgroundColor = [UIColor clearColor];
    if(selected)
    {
        bg.backgroundColor = [UIColor redColor];
        [self setBackgroundView:bg];

        // cell mit tags von 100 - 106
        for(NSInteger i=100; i<107; i++)
        {
            UILabel *str = (UILabel *)[self viewWithTag:i];
            str.textColor = [UIColor whiteColor];
        }
    }
    else
    {
        bg.backgroundColor = [UIColor clearColor];

        [self setBackgroundView:bg];
        for(NSInteger i=100; i<107; i++)
        {
            UILabel *str = (UILabel *)[self viewWithTag:i];
            str.textColor = [UIColor blackColor];
        }
    }
    [super setSelected:selected animated:animated];

感谢您的帮助

0 个答案:

没有答案