UIScrollView自动与手动滚动实现详解

UIScrollView 的自动滚动和手动滚动,说起来不难,关键是细节别掉。自动滚动用NSTimer控制节奏,每隔一段时间更新contentOffset,往前挪一点点,像跑马灯那种感觉。手动滚动就更简单了,用户滑一下,系统自己帮你搞定,基本不用你操心。

内容视图contentView是重点,尺寸得够大才能滚动得起来。要做循环滚动?到边就跳回开头,contentOffset重设一下就行。不过要小心别跳太快,视觉上别太突兀。

自定义视图也能玩,先放进scrollView里,再设好frame,保证你加的东西都能被看到和滑到。布局要清晰,用户滑起来才顺手。

性能这块,内容一多,滚动容易卡。建议用UITableViewUICollectionView来搞定,系统会帮你自动复用,不用你管太多。如果你塞了多图片,考虑下SDWebImage,图片异步加载更稳妥。

说下手势冲突问题,多个手势一起搞时容易打架。可以用UIGestureRecognizerDelegate手动调节优先级,必要时让scrollView先响应,避免体验翻车。

如果你想做个自动滚的广告条,或者滚图展示,那这个技巧用起来还蛮方便的,配合点动画更有感觉。

zip
UIScrollView自定滚动.zip 预估大小:26个文件
folder
UIScrollView自定滚动 文件夹
folder
UIScrollView自定滚动.xcodeproj 文件夹
folder
project.xcworkspace 文件夹
file
contents.xcworkspacedata 189B
folder
xcuserdata 文件夹
folder
robu.xcuserdatad 文件夹
file
UserInterfaceState.xcuserstate 14KB
folder
xcuserdata 文件夹
folder
robu.xcuserdatad 文件夹
folder
xcdebugger 文件夹
file
Breakpoints_v2.xcbkptlist 91B
folder
xcschemes 文件夹
file
xcschememanagement.plist 676B
file
UIScrollView自定滚动.xcscheme 5KB
file
project.pbxproj 23KB
file
.DS_Store 6KB
folder
UIScrollView自定滚动 文件夹
file
ViewController.m 1KB
file
Info.plist 1KB
file
main.m 339B
file
image1.png 610KB
file
image0.png 645KB
file
image2.png 386KB
folder
Base.lproj 文件夹
file
LaunchScreen.storyboard 2KB
file
Main.storyboard 2KB
file
XunHuanScrollView.m 8KB
file
ViewController.h 220B
file
AppDelegate.h 282B
file
image3.png 605KB
folder
Assets.xcassets 文件夹
folder
AppIcon.appiconset 文件夹
file
Contents.json 585B
file
XunHuanScrollView.h 544B
file
AppDelegate.m 2KB
folder
UIScrollView自定滚动UITests 文件夹
file
Info.plist 733B
file
UIScrollView____UITests.m 1KB
folder
UIScrollView自定滚动Tests 文件夹
file
Info.plist 733B
file
UIScrollView____Tests.m 931B
zip 文件大小:2.16MB