MJPhotoBrowser一些bug的处理

本文详细解析了在使用MJPhotoView时遇到的三个常见问题:消息发送到已分配实例、动画效果不一致以及图片放大时底部问题,并提供了相应的解决方法和优化策略。针对这些问题,我们提出了简单的解决思路,包括使用布尔标志控制下载进度显示、调整ImageView的contentMode属性以优化动画效果,以及在图片放大时调整图片位置以避免底部过近的情况。通过这些方法,可以有效提升MJPhotoView的用户体验和视觉效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.-[MJPhotoLoadingView setProgress:]: message sent to deallocated instance 0x17fe4210

分析:        这是由于MJPhotoView 执行了hide移除了MJPhotoLoadingView,然而SDWebimage 仍然执行了下载进度的设置。

解决方法:最简单的是写个bool值,,当响应hide的时候设置为YES,然后

  if (!hide) {
                    loading.progress = (float)receivedSize/expectedSize;
                }

2.点击小图进入大图模式以及回到小图模式时会闪动,动画效果不认直视

分析 : 这主要你原本的ImageView的 contenMode 设置问题,注意如果你原来是 UIViewContentModeScaleAspectFill;

             则MJPhotoView 的init里面也设置成这个 尔reset里面改为UIViewContentModeScaleAspectFit,UIViewContentModeScaleToFill等,若果还是闪动就多测试几次contenMode
             如果项目中多个地方用到MJPhotoBrowser,而且原Imageview的contenModel不一样,需自己做判断


3. 图片放大时图片太靠近底部的问题

解决:在MJPhotoView里面加上下面代码

- (void)scrollViewDidZoom:(UIScrollView *)scrollView {
    CGRect imageViewFrame = _imageView.frame;
    CGRect screenBounds = [UIScreen mainScreen].bounds;
    if (imageViewFrame.size.height > screenBounds.size.height)
    { imageViewFrame.origin.y = 0.0f; }
    else { imageViewFrame.origin.y = (screenBounds.size.height - imageViewFrame.size.height) / 2.0; }
    _imageView.frame = imageViewFrame;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值