gpt4 book ai didi

ios - UITableViewCell animateWithDuration 不起作用

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

我的自定义单元格上有 ImageView 。单元格上的所有元素都有约束。我已经实现了这个方法来为我的箭头制作动画。旋转效果很好但没有动画。我有调试单元并从 nib 方法中唤醒。

我有从 Storyboard单元构建的标题:

View Controller 回调:

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section
{
static NSString *cellIdentifier = @"SectionHeader";

KNCategorySectionCell *sectionView = (KNCategorySectionCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];

sectionView.index = section;
sectionView.delegate = self;

KNCategoryPoxy *category = [_categories objectAtIndex:section];

[sectionView setupViewWithState:category.state];

sectionView.categoryName.text = category.dictionary[@"name"];

return sectionView;
}

方法的自定义单元实现:

- (void)setupViewWithState:(KNCategoryState)state
{
switch (state)
{
case KNCategoryStateStateCollapsed:
{
[self.contentView setBackgroundColor:[UIColor red:255 green:255 blue:255]];

} break;

case KNCategoryStateStateExpanded:
{
[UIView animateWithDuration:10.0f delay:0.0f options:UIViewAnimationOptionCurveEaseOut animations:^{
self.arrowImage.transform = CGAffineTransformMakeRotation(M_PI_2);
} completion:^(BOOL finished) {

}];

[self.contentView setBackgroundColor:[UIColor red:230 green:230 blue:230]];

} break;
}
}

正如我所说,旋转有效,但它会立即将 View 旋转到适当的 M_PI_2 并且似乎没有动画。

我已经使用 Xcode 6.1 和 iOS 8.1 模拟器进行测试。

另外,我在自定义单元格中实现了单击手势并实现了这个方法:

- (void)singleTap
{
[self.delegate sectionDidTappedWithIndex:self.index];
}

delegate 这是我的 View Controller ,它包含显示所有自定义单元格的表格。

在 View Controller 中,我实现了设置 header 扩展和重新加载数据的方法:

- (void)sectionDidTappedWithIndex:(NSInteger)index
{
for (KNCategoryPoxy *category in _categories)
{
category.state = KNCategoryStateStateCollapsed;
}

KNCategoryPoxy *category = [_categories objectAtIndex:index];

category.state = !category.state;

[self.theTableView reloadData];
}

最佳答案

尝试使用UIView.commmitAnimations()执行动画,例如:

 UIView.beginAnimations(“rotation”, context: nil)

UIView.setAnimationDuration(0.8)

cell.layer.transform = CATransform3DIdentity

cell.alpha = 1

cell.layer.shadowOffset = CGSize(width: CGFloat(0), height: CGFloat(0))

UIView.commitAnimations()

还尝试在 willDisplayCell: 方法中执行操作。

引用此http://www.thinkandbuild.it/animating-uitableview-cells/在表格 View 单元格内执行动画的解决方案

关于ios - UITableViewCell animateWithDuration 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27447635/

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