- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我转动方向时,我想知道 iOS 中的动态动画。例如。在我的 iPad 上,菜单中的动画看起来非常“真实”。元素(应用程序、文件夹、停靠栏、背景图像、状态栏……)似乎以完美的美学方式滑动到正确的位置……
但在 App Store 中,我发现了一个偏差,因为应用列表有另一种排列方式。
我的大问题:orientationChangeAnimation 到底是一种视觉错觉,还是真的如此动态?在 App Store 中,看起来实际屏幕正在转动,同时它的 alpha 值正在减小,并且更改后的屏幕的横向/纵向方向正在做同样的反转(随着 alpha 值的增加在相同的轴心转动)。
最佳答案
事实上,Springboard 确实会四处移动东西(比如停靠栏),它还会交叉淡入淡出项目(比如大多数应用程序图标)。
由于 viewWillLayoutSubviews
和 willRotateToInterfaceOrientation
在旋转期间在动画 block 内被调用,您可以简单地为可动画属性(如 alpha 和 frame)分配新值。除非你想明确控制时间,否则不需要明确的 animateWithDuration:animations:
calls; iOS 会在旋转期间自动为您制作动画。
例如,在以下代码中,红色和绿色方 block 在屏幕中央交叉淡入淡出,蓝色方 block 在旋转过程中在左上角和中上角之间移动。
CGRect b = self.view.bounds;
self.greenLabel = [[UILabel alloc] initWithFrame:CGRectMake(b.size.width / 2 - 50, b.size.height / 2 - 50, 100, 100)];
self.greenLabel.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
self.greenLabel.backgroundColor = [UIColor greenColor];
[self.view addSubview:self.greenLabel];
self.redLabel = [[UILabel alloc] initWithFrame:self.greenLabel.frame];
self.redLabel.autoresizingMask = self.greenLabel.autoresizingMask;
self.redLabel.backgroundColor = [UIColor redColor];
[self.view addSubview:self.redLabel];
self.blueLabel = [[UILabel alloc] init];
self.blueLabel.backgroundColor = [UIColor blueColor];
[self.view addSubview:self.blueLabel];
...
- (void)viewWillLayoutSubviews {
if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)) {
self.greenLabel.alpha = 0;
self.redLabel.alpha = 1;
self.blueLabel.frame = CGRectMake((self.view.bounds.size.width - 100) / 2, 20, 100, 100);
} else {
self.greenLabel.alpha = 1;
self.redLabel.alpha = 0;
self.blueLabel.frame = CGRectMake(20, 20, 100, 100);
}
}
关于iphone - iOS - 方向变化 - 光学错觉或元素移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11467967/
在this demo您可以旋转 x 轴以产生 3d 幻觉。尝试 rotatex() css 选项似乎只提供了部分幻觉。 在 this image 的顶部您可以从“大文本”演示中看到 3d 幻觉。文本不
我是一名优秀的程序员,十分优秀!