gpt4 book ai didi

ios - UISegmentedControl 插入动画完成处理程序

转载 作者:行者123 更新时间:2023-11-28 22:02:36 26 4
gpt4 key购买 nike

UISegmentedControl 有一个方法:

- (void)insertSegmentWithTitle:(NSString *)title atIndex:(NSUInteger)segment animated:(BOOL)animated

如果我将 animated 设置为 true,有没有办法让我知道动画何时完成(即完成处理程序、动画委托(delegate)、持续时间)?

最佳答案

前段时间我也遇到过这种检查 UITableView 动画完成的问题,我发现了一篇非常有用的帖子 - Animation End Check

您也可以使用这种方法,在发布此答案之前,我已经在段控制上进行了检查,它运行良好。你可以使用 like -

- (void)viewDidLoad {
[super viewDidLoad];

NSArray *itemArray = [NSArray arrayWithObjects: @"One", @"Two", @"Three", nil];

self.segmentedControl = [[UISegmentedControl alloc] initWithItems:itemArray];
self.segmentedControl.frame = CGRectMake(10, 100, 250, 50);
self.segmentedControl.selectedSegmentIndex = 0;
[self.view addSubview:self.segmentedControl];
}


- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];

[CATransaction begin];
[CATransaction setCompletionBlock:^{
NSLog(@"Animation finished");
}];

[self.segmentedControl insertSegmentWithTitle:@"Four" atIndex:3 animated:YES];
[CATransaction commit];
}

这是因为默认动画使用 CALayer 动画,这里我们定义了一个隐式 CATransaction

关于ios - UISegmentedControl 插入动画完成处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24771451/

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