1、背景:
需求:app显示一张app的使用说明长图。
2、实现:
UIScrollView + UIImageView,设置ScrollView的contentSize为图片的高度
3、主要代码
UIScrollView
#pragma mark - scorllView
-(UIScrollView *)scView{
if (!_scView) {
//获取导航栏和状态栏的高度
CGFloat barHeight = [self barHeight];
_scView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, UPScrrenWidth, UPScreenHeight - barHeight)];
CGFloat imgH = [self imgContentHeight];
_scView.contentSize = CGSizeMake(0,imgH);//设置滚动视图的大小
// _scView.pagingEnabled = YES;//设置是否可以进行画面切换 分块显示
_scView.bounces = NO;
_scView.showsHorizontalScrollIndicator = NO;//隐藏水平滚动条
_scView.showsVerticalScrollIndicator = NO;//
[self.view addSubview:_scView];
}
return _scView;
}
UIImageView
#pragma mark - 显示图片的ImgView
-(UIImageView *)showImg{
if (!_showImg) {
CGFloat imgH = [self imgContentHeight];
_showImg = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0,UPScrrenWidth , imgH)];
//设置imageView的背景图
[_showImg setImage:BundleImg(@"Listen/操作说明.jpg")];
//给imageView设置区域
_showImg.contentMode = UIViewContentModeScaleAspectFill;
//超出边界的剪切
// [_showImg setClipsToBounds:YES];
//把视图添加到当前的滚动视图中
[self.scView addSubview:_showImg];
}
return _showImg;
}
内容的高度
#pragma mark - 内容的高度
-(CGFloat)imgContentHeight{
//获取图片高度
UIImage *img = BundleImg(@"Listen/操作说明.jpg");
CGFloat imgHeight = img.size.height;
CGFloat imgWidth = img.size.width;
CGFloat imgH = imgHeight * (UPScrrenWidth / imgWidth);
return imgH;
}
获取导航栏和状态栏的高度
#pragma mark - 获取导航栏和状态栏的高度
-(CGFloat)barHeight{
//获取导航栏和状态栏的高度
CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame];
CGRect navBarFrame = self.navigationController.navigationBar.frame;
CGFloat barHeight = statusBarFrame.size.height + navBarFrame.size.height;
return barHeight;
}
总结:
个人觉得这种类似注册法律条文、操作说明、用户手册等,可用H5实现,iOS和android通过webView加载就行,既节省开发成本,有方便修改维护。
本人的一点开发小记,如果对你有帮助欢迎小❤️❤️,另不吝赐教。