关于iPad+iPhone上,图片放大缩小时都能点击此区域

来源:互联网 发布:金十数据怎么看原油 编辑:程序博客网 时间:2024/06/16 03:07
比如我们有个中国地图,在北京这个区域放了一个button,当这张地图放大和缩小的时候,我们都能点击这个button触发北京里面的事件。
方法有点笨。 总的来说就是计算放到后图片的尺寸,然后算出放大倍数。把初始坐标放大
设两个变量
    float x;

    float y;


- (void)viewDidLoad {    [super viewDidLoad];    x = 1;    y = 1;      UIImage *image = [UIImage imageNamed:@"index_big.jpg"];    imageView = [[UIImageView alloc] initWithImage:image];    imageView.frame = CGRectMake(0, 0, 1024, 768);    imageView.userInteractionEnabled = YES;      scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, 1024, 768)];    scrollView.contentSize = CGSizeMake(imageView.frame.size.width, imageView.frame.size.height);    scrollView.maximumZoomScale = 3.0;    scrollView.minimumZoomScale = 1.0;    scrollView.delegate = self;    [self.view addSubview:scrollView];    [self.view bringSubviewToFront:scrollView];      [scrollView addSubview:imageView];    [scrollView bringSubviewToFront:imageView];}  - (void)viewDidAppear:(BOOL)animated {    [super viewDidAppear:YES];    uaButton = [UIButton buttonWithType:UIButtonTypeCustom];    uaButton.frame = CGRectMake(731*x, 235*y, 130, 60);    [uaButton setTag:1];    [uaButton addTarget:self action:@selector(clickButton:) forControlEvents:UIControlEventTouchUpInside];    [imageView addSubview:uaButton];}  #pragma mark -#pragma mark view zoom- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {    return imageView;}  - (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale{    NSLog(@"scrollViewDidEndZooming  width:%f, height:%f",imageView.frame.size.width, imageView.frame.size.height);    x = imageView.frame.size.width/1024;    y = imageView.frame.size.height/768;}


原创粉丝点击