iOS开发适配显示长图

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加载就行,既节省开发成本,有方便修改维护。

本人的一点开发小记,如果对你有帮助欢迎小❤️❤️,另不吝赐教。

你可能感兴趣的:(iOS开发适配显示长图)