【发布时间】:2014-05-02 06:54:26
【问题描述】:
我在控制正在使用的 UITextView 中的滚动时遇到问题,因此我选择创建自己的子类。
关于为某些UIScrollView 超类方法提供实现,我有一个非常基本的问题。
这是我的 UITextView 子类的框架代码:
@interface PastedTextView : UITextView
@end
@implementation PastedTextView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
}
return self;
}
- (void)scrollRectToVisible:(CGRect)rect animated:(BOOL)animated
{
NSLog(@"scrollRectToVisible");
}
- (void)setContentOffset:(CGPoint)contentOffset animated:(BOOL)animated
{
NSLog(@"setContentOffset");
}
- (void)zoomToRect:(CGRect)rect animated:(BOOL)animated
{
NSLog(@"zoomToRect");
}
@end
什么时候会调用那些UIScrollView 方法?仅来自我自己的客户端代码?还是会被框架调用?
更新:
我之所以问这个问题是因为我遇到了以下问题:我正在以编程方式将文本添加到 UITextView(来自粘贴板)。当我这样做时,如果 textview 滚动使得内容的顶部不再可见,则在附加新文本后文本视图会滚动回顶部。
我没有明确触发这个滚动,所以它发生在框架内。
我在 Apple 的文档中没有找到任何描述此行为的内容。所以,我一直在试图找到滚动的来源,这样我就可以避免它......
当这个滚动发生时,上面的方法都不会被调用。顺便说一句,UITextViews scrollRangeToVisible 方法也不是(我尝试将该方法添加到子类实现中)。我不知道为什么会发生隐式滚动回顶部,我想阻止它......
【问题讨论】:
标签: ios objective-c cocoa-touch uiscrollview uitextview