iOS放大镜

DSMagnifierView是一个有放大镜子效果的自定义控件。

先看效果:

放大镜效果.gif

其实很简单,就是把UIWindow的图层给渲染到DSMagnifierView上。

由于这个放大镜要处于屏幕最上层,最好是UIWindow的子类,这样可以设置它的视图层级。

使用方法

1.初始化后设置用来渲染的视图renderView。

- (DSMagnifierView *)magnifierView {
    if (nil == _magnifierView) {
        _magnifierView = [[DSMagnifierView alloc] init];
        _magnifierView.renderView = self.view.window;
    }
    return _magnifierView;
}

2.在触摸屏幕的时候设置magnifierView的frame和渲染点renderPoint。

- (void)touchesMoved:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    [super touchesMoved:touches withEvent:event];
    
    NSLog(@"touching");
    
    // 获取触摸点
    UITouch *touch = [touches anyObject];
    CGPoint p = [touch locationInView:self.view];
    
    //window的hidden默认为YES
    self.magnifierView.hidden = NO;
    
    //设置magnifierView的frame
    self.magnifierView.frame = CGRectMake(0, 0, 150, 150);
    self.magnifierView.center = p;
    
    //设置渲染的中心点
    self.magnifierView.renderPoint = p;
}

3.用完后销毁

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
    [super touchesEnded:touches withEvent:event];
    
    //用完一定要记得置nil。
    self.magnifierView = nil;
}

4.最后带上链接:GitHub地址

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ASMagnifierManger 放大镜效果。可更改放大倍数和放大镜大小 特点介绍 放大镜效果 放大镜形状自定义...
    寻常_0阅读 3,573评论 0 5
  • 开发当中总会遇到字体小看不清楚的情况,我这里做了一个放大镜的功能。直接上代码: - (void)setPointT...
    天蓝色的海岸阅读 1,350评论 0 0
  • 效果图如下: 实现思路:创建一个imageView,重写touchBegin的时候获取到触摸点,然后根据触摸点得到...
    音吹阅读 1,372评论 0 1
  • 在iOS中随处都可以看到绚丽的动画效果,实现这些动画的过程并不复杂,今天将带大家一窥ios动画全貌。在这里你可以看...
    每天刷两次牙阅读 8,572评论 6 30
  • 不是那句“心中有猛虎,细嗅蔷薇”。 是心里住了一头小野兽,经常跑出来伤人,然后也伤害自己,最多的事由于伤人之后的自...
    窦家香阅读 121评论 0 0