UIScrollView创建相册
1.设置滚动相册
1.1将存放图片数组传过来,及当前图片的索引
1.2在控制器中创建ScrollView,设置它的contentSize,contentOffset.
1.3通过传过来的图片数组创建UIImageView并将每个UIImageView添加到ScrollView,ScrollView的ConSize是图片数组的总数乘以每个UIImageVIew的宽度.
1.4滚动图片设置图片当前索引及总数.
1.5删除图片操作
1.51当删除图片的索引>0时,设置图片的偏移量是当前图片的索引-1*当前UIImageView的宽度,
_imageScrollView.contentOffset = CGPointMake((self.currImageTag-1)*_imageScrollView.bounds.size.width, 0);
1.52当删除图片的索引= 0时,设置图片的偏移是是当前图片的索引*当前UIImageView的宽度,
_imageScrollView.contentOffset = CGPointMake((self.currImageTag)*_imageScrollView.bounds.size.width, 0);
1.6当删除其中一个图片后,刷新视图重新设置当前的图片的索引及数组的总数,如果是列表形式的,按照九宫格方式重新布局.
代码如下:
CGRect frame = self.view.bounds; frame.origin.x -= gap; frame.size.width += (2* gap); _imageScrollView = [[UIScrollView alloc] initWithFrame:frame]; _imageScrollView.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; ; // 设置伸缩比例 _imageScrollView.maximumZoomScale = 2.0; _imageScrollView.minimumZoomScale = 1.0; _imageScrollView.pagingEnabled = YES; _imageScrollView.delegate = self; _imageScrollView.showsHorizontalScrollIndicator = NO; _imageScrollView.showsVerticalScrollIndicator = NO; _imageScrollView.backgroundColor = [UIColor clearColor]; if (self.imageArray && self.imageArray.count){ _imageScrollView.contentSize = CGSizeMake(frame.size.width *self.imageArray.count, 0); for (NSInteger i = 0; i <self.imageArray.count; i++) { _imageView = [[UIImageView alloc] init]; CGRect bounds = _imageScrollView.bounds; _imageView.frame = CGRectMake(i*bounds.size.width,0, bounds.size.width-gap, bounds.size.height); UIImage *image = self.imageArray[i]; _imageView.userInteractionEnabled = YES; _imageView.tag = i+200; if (image && [image isKindOfClass:[UIImage class]]) { _imageView.image = image; } [_imageScrollView addSubview:_imageView]; } } [self.view addSubview:_imageScrollView]; _imageScrollView.contentOffset = CGPointMake(self.currImageTag*frame.size.width, 0);
将来的自己,会感谢现在不放弃的自己!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现