我现在正在尝试创建自己的文本面板(包括代码高亮等)。
实际上,除了一个问题之外,一切都准备就绪 - 滚动。
我已经完成了以下工作:
使用Interface Builder创建了UIScrollView
并将自己的视图作为subview
插入其中。
在ViewController
的viewDidLoad
方法中,我将初始textfield
大小指向UIScrollView
内容大小。
当用户在我的文本字段中写入太多内容时,我调用代理(即ViewController
)来更改大小。
为此,我只需编写:
[scrollView setContentSize:newSize];
我遇到的问题是滚动视图增加了,但我的文本字段没有增加 - 只有空白行出现。我认为我需要设置视图的大小,但我不知道该如何设置...
我的另一个问题: 每次我调用
[textField setNeedsDisplay]
它都会调用drawRect:
方法,并使用整个视图的矩形(比可见部分要大得多)。如果我尝试使用我的视图修改大小超过3 mb的文件,它会是什么样子?如何强制它仅重新绘制可见部分?谢谢关注。
CGPointZero
,就像你的代码注释中提到的那样。但是,如果我想将我的UIScrollView
向下移动约300个像素,我不确定要放什么 - 有什么想法吗? - Mxyk{{0,300},newSize}
的东西将视图放置在滚动视图顶部以下300像素,并使用负值将其放置在上方。请注意,这会将视图移动到滚动视图中,而不是开始已滚动的视图。如果您想要后者,则需要更改滚动视图的contentOffset
属性。 - ughoavgfhw.contentSize =
即可。 - Fattie