Ios 如何设置UIDatePickerView的高度动画?
我有一个静态的Ios 如何设置UIDatePickerView的高度动画?,ios,objective-c,uitableview,animation,hidden,Ios,Objective C,Uitableview,Animation,Hidden,我有一个静态的UITableViewCell,其中有一个隐藏的datePickerView。当选择按钮时,日期选取视图将可见,单元格高度将变大。代码如下: - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { if (indexPath.row == 1) { if (self.datePickerView.hidden ==
UITableViewCell
,其中有一个隐藏的datePickerView
。当选择按钮
时,日期选取视图
将可见,单元格
高度将变大。代码如下:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (indexPath.row == 1)
{
if (self.datePickerView.hidden == YES) {
return 252 - self.datePickerView.bounds.size.height;
}
else return 252;
}
tableView.estimatedRowHeight = 150;
return UITableViewAutomaticDimension;
}
- (IBAction)datePicker:(id)sender
{
if (self.datePickerView.hidden == YES)
{
[self.datePickerView setHidden:NO];
[self.datePickerView setFrame:CGRectMake(self.datePickerView.frame.origin.x, self.datePickerView.frame.origin.y, self.datePickerView.frame.size.width, 0)];
[UIDatePicker animateWithDuration:1.0 animations:^(){
[self.datePickerView setFrame:CGRectMake(self.datePickerView.frame.origin.x, self.datePickerView.frame.origin.y, self.datePickerView.frame.size.width, self.datePickerView.frame.size.height)];
}];
} else {
[self.datePickerView setHidden:YES];
}
[self.tableView beginUpdates];
[self.tableView endUpdates];
}
当
datePickerView
可见,并且cells
高度变大时,cells
高度会动画化,但datePickerView
不会。我尝试设置其高度的动画,以便它应该与单元格同步,但事实并非如此?当您在动画中设置datePickerView
的帧时,您根本不会更改它。请尝试以下方法:
CGFloat originalHeight = self.datePickerView.frame.size.height;
[self.datePickerView setFrame:CGRectMake(self.datePickerView.frame.origin.x, self.datePickerView.frame.origin.y, self.datePickerView.frame.size.width, 0)];
[UIDatePicker animateWithDuration:1.0 animations:^(){
[self.datePickerView setFrame:CGRectMake(self.datePickerView.frame.origin.x, self.datePickerView.frame.origin.y, self.datePickerView.frame.size.width, originalHeight)];
}];
它仍然没有动画?动画之后是它的高度“0”还是期望值?期望值。高度从不显示0的值