В моем приложении я подклассы в UIScrollView
и рисовать горизонтальные линии в drawRect
методеЛинии, нарисованные на ScrollView, не прокручиваются?
я установил высоту ContentSize
больше, чем высота scrollView
. Я использую метод ниже, чтобы нарисовать линии
Но моя проблема в том, что линии, которые я нарисовал, не прокручиваются с помощью View.
-(id)initWithFFrame:(CGRect)rect
{
_gap=36;
}
- (void)drawRect:(CGRect)rect
{
// Drawing code
int end=0;
NSLog(@"called");
int x=self.frame.size.width;
while (end<self.contentSize.height) {
CGContextRef context=UIGraphicsGetCurrentContext();
CGContextSetLineWidth(context, 1);
CGContextSetStrokeColorWithColor(context, [UIColor blackColor].CGColor);
CGContextMoveToPoint(context, 0, end);
CGContextAddLineToPoint(context, x, end);
CGContextStrokePath(context);
end=end+_gap;
}
}
Я могу заметить, что скроллер перемещается вверх и вниз при прокрутке, но линии не двигаются.
Я не думаю, что это правда - когда прокрутки просматривать свитки это границы тоже меняется так рисунок должен быть штраф. Я думаю, проблема в том, что setNeedsDisplay нужно вызывать всякий раз, когда просматривается представление. однако: это, вероятно, даст плохую производительность. ваш ответ правильный. – nielsbot