【问题标题】:zoom in UIImageView and UIImageView.center放大 UIImageView 和 UIImageView.center
【发布时间】:2012-10-16 16:09:22
【问题描述】:

试图放大/缩小 imageView。

我已经成功地做到了,所以现在我尝试在视图上放置一些按钮,并在点击按钮时放大该区域。

我该如何实现?

这是我目前的代码

-(void)zoomHere:(UIButton *)sender{

    NSLog(@"zoom in");
    //[self performSelector:@selector()
    //         withObject:nil
    //         afterDelay:1.6f];


    CGAffineTransform transformer = CGAffineTransformScale(imageView.transform, 1.05, 1.05);



    if (transformer.a < 5) {
        [UIView beginAnimations:nil context:NULL];
        [UIView setAnimationDuration: 0.2];
        imageView.transform = transformer;
        [UIView setAnimationDelegate:self];
        [UIView commitAnimations];
    }


}

视图确实加载了

- (void)viewDidLoad
{
    [super viewDidLoad];

    UIView *buttonView = [[UIView alloc]initWithFrame:CGRectMake(00.0, 20.0, 768, 1004.0)];

    zoomHere = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [zoomHere addTarget:self
               action:@selector(zoomHere:)
     forControlEvents:UIControlEventTouchDown];
    [zoomHere setTitle:@"ZoomIN" forState:UIControlStateNormal];
    zoomHere.frame = CGRectMake(80.0, 210.0, 160.0, 40.0);
    [buttonView addSubview:zoomHere];

    buttonView.multipleTouchEnabled = YES;

    [self.view addSubview:buttonView];


}

它仍会放大,但不会放大按钮所在的屏幕区域!

【问题讨论】:

    标签: ios cocoa-touch uiview uiimageview


    【解决方案1】:

    如果你想使用缩放变换,你可能也应该使用平移变换
    像这样:

    CGAffineTransform scale = CGAffineTransformMakeScale(1.05, 1.05);
    CGAffineTransform translate = CGAffineTransformMakeTranslation(10, 20);
    CGAffineTransform delta = CGAffineTransformConcat(scale, translate);
    imageView.transform = CGAffineTransformConcat(imageView.transform, delta);
    

    这是你如何知道按钮在你的图像视图上的位置:

    [imageView convertPoint:button.center fromView:self.view]
    

    因此,如果您知道按钮的坐标和当前比例,那么您可以计算新的平移变换
    但至于我,我宁愿使用滚动视图来放大和缩小该图像视图。你可以有很好的弹跳动画和缩放动画,也可以有平移和捏合,当然这取决于你。

    【讨论】:

    • 是的,我也试过了,但无法将按钮放在滚动视图上方并在缩小时将它们保持在原位
    • 用捏合破坏了我的缩小功能
    • 同样在第二个命令上我得到 .view not found on object of imageView
    • 哦,对不起,它应该只是没有 .view 的 imageView,它应该使用 self.view,因为你的按钮属于那里
    • 你能分享一下你想要做什么的图片吗?不过我可能有另一种解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-12
    • 1970-01-01
    相关资源
    最近更新 更多