代码之家  ›  专栏  ›  技术社区  ›  David

InstableView中的ClipRect是什么?

  •  0
  • David  · 技术社区  · 16 年前

    我试图理解cliplect在一个嵌入在滚动视图中的表视图中的含义。我假设clip rect是表视图的可见部分。这意味着只要表视图不调整大小,矩形的宽度就不应该改变,但是在下面的代码中监视剪辑矩形的宽度时,我注意到当我将水平滚动条从左向右移动时,宽度会改变。当我上下移动垂直滚动条时,宽度值变为正常值。

    有人能解释一下吗?事先谢谢。

    - (void)drawRow:(NSInteger)rowIndex clipRect:(NSRect)clipRect { 
        NSLog(@"drawRow Clip Rect Width:%f Height:%f", clipRect.size.width, clipRect.size.height);
        [super drawRow:rowIndex clipRect:clipRect];
    }
    
    1 回复  |  直到 16 年前
        1
  •  0
  •   Max Seelemann    16 年前

    此方法用于在一行中绘制单元格。clip rect确定要绘制的行的部分。没有进一步的研究,我假设它总是包含完整的单元,而不是可见的部分。这使得确定要绘制的单元格和绘图本身更容易。如果从左向右滚动,不同宽度的单元格可能会变为可见或隐藏。表视图中一行中所有(甚至部分)可见单元格的全宽应该等于该剪辑矩形的宽度之和。