小编Fra*_*isi的帖子

UIView animateWithDuration不会为cornerRadius变体设置动画

我试图动画的变化cornerRadius一个的UIView实例layer,但的变化cornerRadius立即生效.

这是代码:

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)];
view.layer.masksToBounds = YES;
view.layer.cornerRadius = 10.0;
[UIView animateWithDuration:1.0 animations:^{

    [view.layer.cornerRadius = 0.0;

}];
Run Code Online (Sandbox Code Playgroud)

谢谢大家给我任何提示.

编辑:

我设法Core Animation使用a 来动画这个属性CABasicAnimation.

CABasicAnimation *animation = [CABasicAnimation animationWithKeyPath:@"cornerRadius"];
animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear];
animation.fromValue = [NSNumber numberWithFloat:10.0f];
animation.toValue = [NSNumber numberWithFloat:0.0f];
animation.duration = 1.0;
[viewToAnimate.layer addAnimation:animation forKey:@"cornerRadius"];
[animation.layer setCornerRadius:0.0];
Run Code Online (Sandbox Code Playgroud)

cornerradius uiview uiviewanimation

61
推荐指数
5
解决办法
2万
查看次数

查看轮换通知:为什么didRotateFromInterfaceOrientation:没有被调用?

我正在尝试检测任何设备方向更改,以便我可以更新视图.

我想更新视图是方向是纵向还是横向,所以我实现了这个方法:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
// Return YES for supported orientations.
return (interfaceOrientation == UIInterfaceOrientationPortrait || interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
Run Code Online (Sandbox Code Playgroud)

我知道如果我想更新视图以正确显示当前方向,我将需要实现以下一些方法:

– willRotateToInterfaceOrientation:duration:
– willAnimateRotationToInterfaceOrientation:duration:
– didRotateFromInterfaceOrientation:
– willAnimateFirstHalfOfRotationToInterfaceOrientation:duration:
– didAnimateFirstHalfOfRotationToInterfaceOrientation:
– willAnimateSecondHalfOfRotationFromInterfaceOrientation:duration:
Run Code Online (Sandbox Code Playgroud)

现在,问题是我不明白为什么在旋转模拟器时这些方法都没有被触发.

我试过这段代码:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
Run Code Online (Sandbox Code Playgroud)

但仍然没有.所以我想知道,模拟器是否会触发旋转通知?如果是的话,我做错了什么?

iphone uiviewcontroller uiinterfaceorientation ios

13
推荐指数
2
解决办法
2万
查看次数