• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 放大 UIImageView 和 UIImageView.center

[复制链接]
菜鸟教程小白 发表于 2022-12-13 17:09:08 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

尝试放大/缩小 imageView。

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

我该如何实现?

这是我目前的代码

-(void)zoomHereUIButton *)sender{

    NSLog(@"zoom in");
    //[self performSelectorselector()
    //         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];
    }


}

View 确实加载了

- (void)viewDidLoad
{
    [super viewDidLoad];

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

    zoomHere = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [zoomHere addTarget:self
               actionselector(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];


}

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



Best Answer-推荐答案


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

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

这是你如何知道按钮在你的 ImageView 上的位置:

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

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

关于ios - 放大 UIImageView 和 UIImageView.center,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12918945/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap