2013-04-29 30 views
1

在我的應用我子類在drawRect方法在ScrollView上繪製的線條不滾動?

我設置的高度比scrollView的高度ContentSize越大UIScrollView和畫水平線。我用下面的方法畫線

但我的問題是,我畫的線不滾動與視圖。

-(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 2013-10-28 09:56:57