編輯 - 我已經弄清楚我原來的做錯了。我改變了UIScrollView的大小,而不是模式子視圖。我已經解決了這個問題,但是用這個新問題修正了我的問題。如何讓我的圖案視圖延伸而不伸展?
我在我的應用程序中使用紙張效果製作備註部分。這些行位於單獨的UIScrollView上,它響應scrollViewDidScroll:
,因此行和文本總是一起移動。我行建立了這樣的viewWillAppear
:
CGRect noteLinesRect = CGRectMake(self.view.bounds.origin.x,
self.view.bounds.origin.y,
self.view.bounds.size.width,
noteTextView.contentSize.height+self.view.bounds.size.height);
UIScrollView *anoteXLinesView = [[UIScrollView alloc] initWithFrame:self.view.bounds];
self.noteXLinesView = anoteXLinesView;
[anoteXLinesView release];
LinePatternView *linesPattern = [[LinePatternView alloc] initWithFrame:noteLinesRect];
self.linesPatternView = linesPattern; [linesPattern release];
[self.noteXLinesView addSubview:self.linesPatternView];
[linesPattern release];
CGPoint newOffset = CGPointMake(self.noteTextView.contentOffset.x, noteTextView.contentOffset.y - NOTE_LINES_OFFSET);
self.noteXLinesView.contentOffset = newOffset;
[self.view insertSubview:self.noteXLinesView atIndex:0];
此工作正常時,用戶首先着眼於存儲說明 - 所有的文字是很好的下劃線。但是當他們寫出更多的文字時,他們最終會到達我在viewWillAppear
中創建的線條的底部,並寫在'空白紙'上。所以我需要我的內襯紙模式動態地變得越來越小,所以它總是比我的textView的contentSize大一些。我想是這樣做的:
-(void)textViewDidChange:(UITextView *)textView
{
self.linesPatternView.frame = CGRectMake(self.linesPatternView.frame.origin.x, //-self.noteTextView.contentOffset.y+NOTE_LINES_OFFSET,
self.linesPatternView.frame.origin.y,
self.linesPatternView.frame.size.width,
noteTextView.contentSize.height+self.view.bounds.size.height);
}
的問題是,雖然內襯紙模式確實在尺寸增加,它不會在底部添加新行。相反,隨着視圖變大,圖案伸展並變大。我究竟做錯了什麼?
一個非常聰明的想法,但有一個障礙:我的'紙'的頂部有點不同,而模式只在它下面開始。爲了按照你的建議去做,模式必須是我的垂直對稱。 – 2011-06-03 15:27:45