- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图让 iPad 启动画面淡出以在 2 秒内显示我的应用程序的主界面。主界面是我的主视图 Controller 和 View ,位于导航 Controller 内。
所以我做了以下事情:
UINavigationController 和我的 Root View Controller 。 Root View Controller 的界面全部布局,作为最后一步,CALayer 具有相同的 png 用于覆盖界面的初始屏幕。
想法是,一旦真正的启动画面消失了,CALayer 仍然存在。然后我将 CAlayer 淡出以显示界面。它有点管用:淡入淡出,但无论我为动画设置多长时间,它仍然发生得太快。
代码如下:(logoLayer 是一个 ivar,mainCanvas 是 self.view 中的一个容器 View ,我在其中插入了大多数 subview ——用于其他屏幕暗淡类型的效果。)
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
// Custom initialization
self.view.layer.backgroundColor = [UIColor clearColor].CGColor;
[self setLayerContent:[[NSBundle mainBundle] pathForResource:@"interfaceBackground" ofType:@"png"]];
[self layoutNavigationButtonWithResource:@"button1" glowing:YES forAction:@"biblioteca"];
[self layoutNavigationButtonWithResource:@"button2"glowing:YES forAction:@"portfolio"];
NSString *logoPath = [[NSBundle mainBundle] pathForResource:@"Default-Portrait~ipad" ofType:@"png"];
UIImage *image = [UIImage imageWithContentsOfFile:logoPath];
logoLayer = [[CALayer layer] retain];
logoLayer.contents = (id)image.CGImage;
logoLayer.bounds = CGRectMake(0, 0, image.size.width, image.size.height);
logoLayer.anchorPoint = CGPointMake(0, 0);
logoLayer.opacity = 1;
[mainCanvas.layer addSublayer:logoLayer];
}
return self;
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self performSelector:@selector(fadeOutLogo) withObject:nil afterDelay:0.1];
}
- (void)fadeOutLogo
{
CABasicAnimation *a = [CABasicAnimation animation];
a.duration = 10;
[logoLayer addAnimation:a forKey:@"opacity"];
[logoLayer setOpacity:0];
}
请注意,为了以防万一,我什至延迟了对动画代码的调用。而且我还得到了 10 秒的值。这对于淡入淡出是荒谬的。不过……淡入淡出大约需要 0.2 秒。
有什么想法吗?
最佳答案
CABasicAnimation 实际上并没有做任何事情,因为你没有给它一个 fromValue
或 toValue
;当你设置图层的不透明度时,它只是动画,因为在 Core Animation 图层上设置属性会触发隐式动画,其默认持续时间约为四分之一秒。你想要做的是这样的:
- (void)fadeOutLogo
{
[CATransaction begin];
[CATransaction setAnimationDuration:2];
[logoLayer setOpacity:0];
[CATransaction commit];
}
关于ios - 更改 ViewDidAppear 上的核心动画持续时间似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9038500/
今天有小伙伴给我留言问到,try{...}catch(){...}是什么意思?它用来干什么? 简单的说 他们是用来捕获异常的 下面我们通过一个例子来详细讲解下
我正在努力提高网站的可访问性,但我不知道如何在页脚中标记社交媒体链接列表。这些链接指向我在 facecook、twitter 等上的帐户。我不想用 role="navigation" 标记这些链接,因
说现在是 6 点,我有一个 Timer 并在 10 点安排了一个 TimerTask。之后,System DateTime 被其他服务(例如 ntp)调整为 9 点钟。我仍然希望我的 TimerTas
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我就废话不多说了,大家还是直接看代码吧~ ? 1
Maven系列1 1.什么是Maven? Maven是一个项目管理工具,它包含了一个对象模型。一组标准集合,一个依赖管理系统。和用来运行定义在生命周期阶段中插件目标和逻辑。 核心功能 Mav
我是一名优秀的程序员,十分优秀!