gpt4 book ai didi

ios - CGAffineTransform Identity 与 iOS 8 和 XCode 6 不同(没有自动布局)

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:03:22 25 4
gpt4 key购买 nike

我有一个动画来添加一个 subview ,使它看起来好像来自用户触摸的内部,然后填充整个屏幕。

同样,当 iOS 应用程序从用户触摸它的地方打开时..

- (void) showView : (UIView *) theview : (CGPoint) thepoint {
CGPoint c = thepoint;
CGFloat tx = c.x - floorf(theview.center.x) + 10;
CGFloat ty = c.y - floorf(theview.center.y) + 100;

[UIView animateWithDuration:0.5
delay:0.0
options:UIViewAnimationOptionCurveEaseOut
animations:^{
// Transforms
CGAffineTransform t = CGAffineTransformMakeTranslation(tx, ty);
t = CGAffineTransformScale(t, 0.1, 0.1);
theview.transform = t;
theview.layer.masksToBounds = YES;
[theview setTransform:CGAffineTransformIdentity];

}
completion:^(BOOL finished) {
}];
}

上面的代码完成了我们在 iOS8 之前所需要的.. 在 XCode5.1 (iOS7 SDK) 下构建

但是从 iOS8 SDK、XCode6 开始,行为就完全不同了

ZOOM 现在表现异常。我终于能够发现 CGAffineTransformIdentity 在 iOS8 中行为错误(或者我使用错误?)..

我看到很多人都有这个问题,但他们提到了 AutoLayout。我所有的观点都是以编程方式创建的。我们不使用 nib 文件。(IB)

如何在 XCode 6 中使用它?

最佳答案

经过几个小时的努力,我想出了一个解决方案。我只是为 future 的用户发布它。

- (void) showView : (UIView *) theview : (CGPoint) thepoint {

CGPoint c = thepoint;
CGFloat tx = c.x - (floorf(theview.center.x)) ;
CGFloat ty = c.y - (floorf(theview.center.y));

/* The transformation now is before the animation block */
CGAffineTransform t = CGAffineTransformMakeTranslation(tx, ty);
t = CGAffineTransformScale(t, 0.1, 0.1);
theview.transform = t;
theview.layer.masksToBounds = YES;

/* Animate only the CGAffineTransformIdentity */
[UIView animateWithDuration:0.8
delay:0.0
options:UIViewAnimationOptionCurveEaseIn
animations:^{
theview.layer.masksToBounds = YES;
[theview setTransform:CGAffineTransformIdentity];
}
completion:^(BOOL finished) {
}];
}

但我不知道,为什么它以前使用 iOS7 SDK 而不是新的 iOS8 SDK。!

关于ios - CGAffineTransform Identity 与 iOS 8 和 XCode 6 不同(没有自动布局),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26409849/

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