2013-04-29 2 views
1

В моем приложении я подклассы в 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; 
    } 
} 

Я могу заметить, что скроллер перемещается вверх и вниз при прокрутке, но линии не двигаются.

ответ

2

Проблема в том, что эти строки являются частью UIScrollView, а не его содержимого.

Вам нужно создать новый UIView подкласс, рисовать содержание там, и добавить к вашему UIScrollView

+1

Я не думаю, что это правда - когда прокрутки просматривать свитки это границы тоже меняется так рисунок должен быть штраф. Я думаю, проблема в том, что setNeedsDisplay нужно вызывать всякий раз, когда просматривается представление. однако: это, вероятно, даст плохую производительность. ваш ответ правильный. – nielsbot

Смежные вопросы