像 FB 封面照片一样在 UIImageView 上调整图像

Posted

技术标签:

【中文标题】像 FB 封面照片一样在 UIImageView 上调整图像【英文标题】:Image adjust on UIImageView like FB cover photo 【发布时间】:2016-06-03 03:19:47 【问题描述】:

要求:

我想用封面照片注册用户。所以我想像 Facebook 一样封面照片。

我的问题:

2) 当我在封面照片上设置图像时,它会自行拉伸,不应拉伸..

3) 用户应该能够通过滚动或手势进行调整。

请帮帮我..

【问题讨论】:

UIImageView 属性更改为 AspectFit 或 AspectFill 【参考方案1】:

实现它的最佳方法是:

第 1 步:将您的 Imageview 放在与 ImageView 相同框架的一个视图中。

第 2 步:设置图像内容模式和 userInteractionEnabled

YourImageView.contentMode=UIViewContentModeScaleAspectFill;
YourImageView.userInteractionEnabled=YES;

第 3 步:声明平移手势

@property (strong, nonatomic) UIPanGestureRecognizer *panGesture;

第 4 步:定义 PanGesture 并指定 YourImageview。

self.panGesture=[[UIPanGestureRecognizer alloc]initWithTarget:self action:@selector(panGestureComplete:)];
[YourImageView addGestureRecognizer:self.panGesture];

(更新) 第 5 步:添加以下方法..

-(void)panGestureComplete : (UIPanGestureRecognizer *)parameter

    if (parameter.state != UIGestureRecognizerStateEnded && parameter.state != UIGestureRecognizerStateFailed) 

        CGPoint point=[parameter locationInView:parameter.view.superview];

        // _ViewContainer is the View in which image lies..

        if ( CGRectContainsPoint(_ViewContainer.bounds, point) ) 
            // Point lies inside the your view Container bounds.
            CGPoint pntTemp=_imgView.center;
            pntTemp.y=point.y;
            parameter.view.center=pntTemp;
        
    

你已经完成了.. 希望这会有所帮助.. :)

【讨论】:

@KamleshShinarakhiya 你能告诉它什么时候工作不顺利吗? 当图片在imageview上向上移动时,我想再次向下移动图片,它卡在以前的位置。 这是因为您的 Imageview 完全进入其容器视图。 & 所以它不能接受这个手势..... @KamleshShinarakhiya 更新了我的答案,将拖动限制在界限内......试试吧.. 谢谢!现在我可以上下移动图片,但不能查看全图,这意味着我只能上下移动半张图片。

以上是关于像 FB 封面照片一样在 UIImageView 上调整图像的主要内容,如果未能解决你的问题,请参考以下文章

如何在iOS相册中设置自定义相册的封面?

Facebook时间线封面照片iphone

像 Google SignIn Button 一样设置 Facebook SignIn 按钮高度

使 div 内的图像像背景图像封面一样

像背景大小一样缩放和重新定位 iframe:封面

iOS:问题保存照片