Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何设置UIDatePickerView的高度动画?_Ios_Objective C_Uitableview_Animation_Hidden - Fatal编程技术网

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的值