1、创建与设置控件
复制UIScrollView *scrollView = [[UIScrollView alloc] init];
[self addSubview:scrollView];
scrollView.frame = CGRectMake(10, 10, 100, 100);
scrollView.backgroundColor = [UIColor yellowColor];
UIButton *button = [UIButton buttonWithType:UIButtonTypeSystem];
button.backgroundColor = [UIColor blueColor];
button.frame = CGRectMake(10, 10, 300, 100);
[scrollView addSubview:button];
scrollView.contentSize = CGSizeMake(1000, 1000);
scrollView.contentOffset = CGPointMake(0, 500);
scrollView.contentInset = UIEdgeInsetsMake(10, 10, 10, 10);
scrollView.directionalLockEnabled = YES;
scrollView.alwaysBounceVertical = YES;
scrollView.alwaysBounceHorizontal = YES;
scrollView.pagingEnabled = YES;
scrollView.scrollEnabled = YES;
scrollView.showsHorizontalScrollIndicator = YES;
scrollView.showsVerticalScrollIndicator = YES;
scrollView.scrollIndicatorInsets = UIEdgeInsetsMake(0, 100, 0, 0);
scrollView.indicatorStyle = UIScrollViewIndicatorStyleBlack;
scrollView.scrollsToTop = NO;
scrollView.keyboardDismissMode = UIScrollViewKeyboardDismissModeOnDrag;
scrollView.minimumZoomScale = 2;
scrollView.maximumZoomScale = 6;
CGFloat zoomScale = scrollView.zoomScale;
scrollView.delegate = self;
2、代理方法
- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView {
}
- (void)scrollViewWillEndDragging:(UIScrollView *)scrollView withVelocity:(CGPoint)velocity targetContentOffset:(inout CGPoint *)targetContentOffset {
}
- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate {
}
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
}
- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView {
}
- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView {
}
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
}
- (BOOL)scrollViewShouldScrollToTop:(UIScrollView *)scrollView {
return YES;
}
- (void)scrollViewDidScrollToTop:(UIScrollView *)scrollView {
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return [scrollView.subviews[0] viewWithTag:100];
}
- (void)scrollViewWillBeginZooming:(UIScrollView *)scrollView withView:(UIView *)view {
}
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(CGFloat)scale {
}
- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
}
3、常见问题
-
- 没有设置 contentSize
- scrollEnabled = NO
- 没有接收到触摸事件 userInteractionEnabled = NO
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)