gpt4 book ai didi

iphone - 底部弹出UIPicker?

转载 作者:行者123 更新时间:2023-12-03 19:42:37 28 4
gpt4 key购买 nike

调用action时从屏幕底部弹出的UIPicker只是一个以某种方式协调的基本UIPickerView吗? (像 UIActionSheet 一样?)我将如何实现它?

最佳答案

这是我使用的动画代码:

- (void)animateDatePicker:(BOOL)show {
CGRect screenRect = self.frame;
CGSize pickerSize = [self.datePickerView sizeThatFits:CGSizeZero];
CGRect startRect = CGRectMake(0.0,
screenRect.origin.y + screenRect.size.height,
pickerSize.width, pickerSize.height);

CGRect pickerRect = CGRectMake(0.0,
screenRect.origin.y + screenRect.size.height - pickerSize.height,
pickerSize.width,
pickerSize.height);

self.datePickerView.frame = pickerRect;
self.backgroundColor = UIColorMakeRGBA( 64, 64, 64, 0.7f - (int)show * 0.7f );

if ( show ) {
self.datePickerView.frame = startRect;
[self.parentViewController addSubviewToWindow:self];
}

[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.3f];
[UIView setAnimationDelegate:self];

self.backgroundColor = UIColorMakeRGBA( 64, 64, 64, 0.0f + (int)show * 0.7f );

if ( show ) {
self.datePickerView.frame = pickerRect;
} else {
[UIView setAnimationDidStopSelector:@selector(slideDownDidStop)];
self.datePickerView.frame = startRect;
}

[UIView commitAnimations];
}

datePickerView是一个 View ,包含DatePicker:

self.datePickerView = [[UIView alloc] initWithFrame:CGRectMake(0.0, 174.0, 320.0, 286.0)];
self.datePicker = [[UIDatePicker alloc] initWithFrame:CGRectMake(0.0, 70.0, 320.0, 216.0)];
[self.datePicker setDatePickerMode:UIDatePickerModeDate];
[self.datePicker addTarget:self action:@selector(pickerValueChanged:) forControlEvents:UIControlEventValueChanged];
[self.datePickerView addSubview:self.datePicker];

parentViewController应该实现addSubviewToWindow方法:

- (void)addSubviewToWindow:(UIView *)addView {
[self.view addSubview:addView];
}

UIColorMakeRGBA:

#define UIColorMakeRGBA(nRed, nGreen, nBlue, nAlpha) [UIColor colorWithRed:(nRed)/255.0f green:(nGreen)/255.0f blue:(nBlue)/255.0f alpha:nAlpha]

slideDownDidStop是一个方法,当datePicker下滑成功后会调用该方法。

所以,总结一下 - 你有 MyViewController,它有

MyDatePickerView *myDatePicker;

字段。

MyDatePickerView 是一个自定义类,具有 UIDatePicker *datePicker 字段、MyViewController *parentViewController 和 animateDatePicker 方法。

当您在 MyViewController 上执行某些操作(例如,某些按钮的 UIControlEventTouchUpInside)时,您应该调用

[myDatePicker animateDatePicker:YES];

如果您有疑问,请告诉我。

更新:这是一个小example .

关于iphone - 底部弹出UIPicker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3441651/

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