У меня возникла проблема с пользовательским чертежом NSView, использующим как documentView NSScrollView.пользовательский чертеж nsview внутри nsscrollview
Вот мой DrawRect: Код:
- (void)drawRect:(NSRect)dirtyRect
{
[[NSColor lightGrayColor] set];
NSRectFill(self.frame); // Fill entire frame
[[NSColor grayColor] set];
[NSBezierPath setDefaultLineWidth:1];
float y = 0.0f;
while (y <= self.frame.size.height) {
[NSBezierPath strokeLineFromPoint:NSMakePoint(0.0f, y) toPoint:NSMakePoint(self.frame.size.width, y)];
y += 50.0f;
}
float x = 0.0f;
while (x <= self.frame.size.width) {
[NSBezierPath strokeLineFromPoint:NSMakePoint(x, 0.0f) toPoint:NSMakePoint(x, self.frame.size.height)];
x += 50.0f;
}
}
Все нормально, когда я прокрутить вид вправо, но я вижу странные строки, когда я прокрутить вид влево.
Я думаю, что это кэшировать буфер изображения или что-то, но я не мог получить, почему это происходит потому, что я заполняю прямоугольник, который охватывает весь кадр.
В чем причина этой проблемы? Как я могу это решить? Благодарю.
Не работает для меня. У меня аналогичная проблема (изображение сильно повреждено при прокрутке). – LiMar
Убедитесь, что ваши прямоугольники являются неотъемлемыми. CGRectIntegral() поможет. Взгляды ненавидят дробные прямоугольники – uchuugaka