之前传过一个用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