UIView 图像中的缩放效果

Posted

技术标签:

【中文标题】UIView 图像中的缩放效果【英文标题】:Zoom effect in a UIView image 【发布时间】:2013-12-29 10:06:28 【问题描述】:

当用户将鼠标悬停在图像上时,点击某个身体部位会显示该区域的放大图像。我想知道任何可能的第三方框架可以解决此类功能或代码 sn-ps(例如使用哪些手势识别器)可以帮助我实现此功能。

问题 2:我还必须在触摸发生和结束的位置添加一个动态可点击标签(如您在图像中看到的手腕标签),以便我可以将用户带到此屏幕上的单独视图单击标签。如何让这成为可能?

【问题讨论】:

【参考方案1】:

在您的 drawRect 方法中,遮住一个圆圈(使用包含放大镜“遮罩”的单色位图)并在其中使用 2 倍比例变换绘制您的主题视图。然后在上面画一个放大镜图像就完成了。

- (void) drawRect: (CGRect) rect 
    CGContextRef    context = UIGraphicsGetCurrentContext();
    CGRect          bounds = self.bounds;
    CGImageRef      mask = [UIImage imageNamed: @"loupeMask"].CGImage;
    UIImage         *glass = [UIImage imageNamed: @"loupeImage"];

    CGContextSaveGState(context);
    CGContextClipToMask(context, bounds, mask);
    CGContextFillRect(context, bounds);
    CGContextScaleCTM(context, 2.0, 2.0);

    //draw your subject view here

    CGContextRestoreGState(context);

    [glass drawInRect: bounds];

查看this 链接以获取完整示例。

【讨论】:

嘿,你对我添加的第二个问题有什么想法吗? 嘿,一旦你设法画出圆圈,然后在圆圈前面添加动态标签。 (使用带有标签的标签在删除时会很麻烦。)

以上是关于UIView 图像中的缩放效果的主要内容,如果未能解决你的问题,请参考以下文章

UIView 背景图像在设备旋转时不缩放

UIView 高度无法跨设备正确缩放图像

在方向更改时自动缩放 UIView 以按比例缩放以适合父视图

iOS:UIImage 缩放以填充 UIView

如何在 UIScrollView 中捏缩放多个 UIImageView

不使用 UIScrollview 缩放 UIView