思路:UIView加载完成3后,用NSTimer结合setContentOffset将UITextView向下滚动1像素。在滚动到底部的时候停止NSTimer。每当手动滚动UITextView前销毁NSTimer,滚动后重新创建NSTimer。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
NSTimer
*timer;
- (
void
)viewDidLoad {
[
self
performSelector:
@selector
(resetText) withObject:
nil
afterDelay:3.0f];
}
- (
void
)resetText {
[timer invalidate];
timer =
nil
;
timer = [
NSTimer
scheduledTimerWithTimeInterval: 0.06
target:
self
selector:
@selector
(onTick:)
userInfo:
nil
repeats:
YES
];
}
- (
void
)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
[timer invalidate];
timer =
nil
;
NSLog
(@
"scrollViewWillBeginDragging"
);
[
self
performSelector:
@selector
(resetText) withObject:
nil
afterDelay:3.0f];
}
- (
void
) onTick:(
NSTimer
*)theTimer {
CGPoint pt = [textView contentOffset];
CGFloat n = pt.y + 1;
[textView setContentOffset:CGPointMake(pt.x, n)];
if
(n> (textView.contentSize.height-textView.bounds.size.height)) {
[theTimer invalidate];
theTimer =
nil
;
[timer invalidate];
timer =
nil
;
}
}
|
最后 不要忘了实现
UIScrollViewDelegate