gpt4 book ai didi

iphone - 如何为缩放设置 anchor (GMGridView)

转载 作者:可可西里 更新时间:2023-11-01 04:39:46 24 4
gpt4 key购买 nike

出于学习目的,我正在研究“太阳能”应用程序。我注意到可以使用捏合手势缩放图 block 。它缩放的方式清楚地表明已经设置了 uiview 的 anchor 。

你可以在这里看到它的视频http://www.youtube.com/watch?v=FfgWkAuLvng

为了达到同样的目的,我下载了 GMGridView 代码。我尝试设置 anchor 以获得与 Solar 应用程序中相同的输出。

我面临的问题是,第一次缩放时我无法在 anchor 缩放它,但其余时间。我找不到为什么它不是第一次从 anchor 缩​​放。请帮我。

我将下面的方法修改为

- (void)pinchGestureUpdated:(UIPinchGestureRecognizer *)pinchGesture

我将手势识别器的开始状态修改为

 case UIGestureRecognizerStateBegan:
{
[self transformingGestureDidBeginWithGesture:pinchGesture];
_transformingItem.contentView.layer.anchorPoint = CGPointMake(0,0.5);
break;
}

最佳答案

发生这种情况是因为一旦您更改图层的 anchor ,您也会更改图层 View 的中心点。假设 View 的框架是 0,0,100,100 那么默认情况下 View 的中心位于 50,50 因为 anchor 设置为 0.5,0.5 .当您现在将 anchor 更改为 0,0.5 时, View 的中心现在位于 0,50 导致它在下次绘制时跳跃。为避免这种情况,您必须在更改 anchor 后更新 View 的中心。我已经在您描述的 GMGridView 中对其进行了测试:

case UIGestureRecognizerStateBegan:
{
[self transformingGestureDidBeginWithGesture:pinchGesture];

_transformingItem.contentView.layer.anchorPoint = CGPointMake(0,0.5);

CGPoint orgCenter = _transformingItem.contentView.center;
orgCenter.x -= _transformingItem.contentView.frame.size.width / 2.f;

[_transformingItem.contentView setCenter:orgCenter];
}
break;

我希望这能回答您的问题。

关于iphone - 如何为缩放设置 anchor (GMGridView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17144231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com