gpt4 book ai didi

ios - 这是淡入和淡出 UIView 的正确方法吗?

转载 作者:行者123 更新时间:2023-11-29 03:58:08 31 4
gpt4 key购买 nike

通过按下按钮淡入和淡出 UIView,但似乎可以编写更好的代码:

- (IBAction)navigationTap:(id)sender {
if (navigationFolded == TRUE) {
[UIView beginAnimations:@"MoveOut" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:0.2f];
self.moveMe.frame = CGRectMake(0, 0, _moveMe.bounds.size.width, _moveMe.bounds.size.height);
[UIView commitAnimations];
navigationFolded = FALSE;
} else {
[UIView beginAnimations:@"MoveIn" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseIn];
[UIView setAnimationDuration:0.2f];
self.moveMe.frame = CGRectMake(50-_moveMe.bounds.size.width, 0, _moveMe.bounds.size.width, _moveMe.bounds.size.height);
[UIView commitAnimations];
navigationFolded = TRUE;
}

最佳答案

根据您的代码,听起来您希望 UIView 从屏幕侧面滑入。淡入淡出涉及对 UIView

alpha 值进行动画处理

您的代码可以通过使用更新的基于 block 的语法来执行动画并仅将 x 位置的值包装在 if 语句中来简化,因为它是随 navigationFolded 更改的唯一部分。

- (IBAction)navigationTap:(id)sender {
NSInteger xPos = 0;
if (!navigationFolded) {
xPos = 50-_moveMe.bounds.size.width
}

[UIView animateWithDuration:0.2f delay:0 options:UIViewAnimationOptionCurveEaseIn animations:^{
self.moveMe.frame = CGRectMake(xPos, 0, _moveMe.bounds.size.width, _moveMe.bounds.size.height);
} completion:nil];

navigationFolded = !navigationFolded;
}

关于ios - 这是淡入和淡出 UIView 的正确方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16239256/

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