之前传过一个用window类实现的,但在实际项目中用多个window会出现一些不必要的冲突。所以用View重新实现一个。
例子:http://download.csdn.net/detail/qqmcy/7025253
ViewController.h
// // ViewController.h // 放大镜例子 // // Created by 杜甲 on 14-3-10. // Copyright (c) 2014年 杜甲. All rights reserved. // #import <UIKit/UIKit.h> #import "MagnifierV.h" @interface ViewController : UIViewController @property (strong , nonatomic) MagnifierV* magnifier; @end
// // ViewController.m // 放大镜例子 // // Created by 杜甲 on 14-3-10. // Copyright (c) 2014年 杜甲. All rights reserved. // #import "ViewController.h" @interface ViewController () @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. UIImageView* image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"changmen.jpg"]]; image.frame = CGRectMake(0, 0, 320, 548); [self.view addSubview:image]; /*要将放大镜视图最后 addSubview 到视图中*/ self.magnifier = [[MagnifierV alloc] initWithFrame:CGRectMake(0, 0, 80, 80)]; self.magnifier.viewToMagnify = self.view; [self.view addSubview:self.magnifier]; self.magnifier.hidden = YES; } - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { self.magnifier.hidden = NO; UITouch* touch = [touches anyObject]; CGPoint point = [touch locationInView:self.view]; self.magnifier.touchPoint = point; [self.magnifier setNeedsDisplay]; } - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { [self handleAction:touches]; } - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { self.magnifier.hidden = YES; } - (void)handleAction:(id)timerObj { NSSet *touches = timerObj; UITouch *touch = [touches anyObject]; CGPoint point =[touch locationInView:self.view]; self.magnifier.touchPoint = point; [self.magnifier setNeedsDisplay]; } - (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated. } @end
iOS放大镜例子,用View类实现,布布扣,bubuko.com
原文:http://blog.csdn.net/qqmcy/article/details/21037731