我的UIActionSheet
包含picker
和UIToolbar
。在UIToolBar上有一个完成按钮。但是,当我旋转Picker
组件并且在它停止旋转之前,如果我点按Done
按钮,那么我的UITextfield
中没有任何值。如果我在选择器停止旋转动画后点击Done
按钮,那么我将获得所选组件的值
有没有办法在停止动画之前获得项目的价值..?
SOLVE
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
{
UILabel *lbl = (UILabel *)view;
// Reuse the label if possible...
if ((lbl == nil) || ([lbl class] != [UILabel class])) {
CGRect frame = CGRectMake(0.0, 10.0, 250, 50);
lbl = [[[UILabel alloc] initWithFrame:frame] autorelease];
}
if (component == 0) {
lbl.textColor = [UIColor blackColor];
lbl.textAlignment=UITextAlignmentLeft;
lbl.backgroundColor = [UIColor clearColor];
lbl.text = [arrCountry objectAtIndex:row];
lbl.font=[UIFont boldSystemFontOfSize:14];
NSInteger clm1 = [pickerView2 selectedRowInComponent:component];
txtCountry.text = [arrCountry objectAtIndex:clm1];
countryCode=[arrCountryCode objectAtIndex:clm1];
}
return lbl;
}
以及
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
txtCountry.text = [arrCountry objectAtIndex:row];
countryCode=[arrCountryCode objectAtIndex:row];
}
答案 0 :(得分:2)
我认为你不能交配。当微调器停止时,UIPicker只调用didselectrow,否则它会卡在先前拾取的行上。在你的情况下的第一个。
使用uipicker可以获得最接近功能的是这种委托方法:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view
您必须查看屏幕上的视图及其与中心的偏移量。除此之外,你可以实现自己的scrollview并有一个uipicker覆盖,但这涉及很多工作。
OR!你可以告诉你的用户以正确的方式使用uipicker。
阻止用户按下保存的另一种方法是检测uipicker是否正在旋转。我找到了this to help你。
答案 1 :(得分:1)
Picker delegate
- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
//selectedRowInPicker is globle NSInteger
selectedRowInPicker = row;
yourTextField.text = [NSString stringWithFormat:@"%@",[pickerValueAry objectAtIndex:row]];
}
//完成BtnPress
-(void)doneBtnPressToGetValue
{
yourTextField.text = [NSString stringWithFormat:@"%@",[pickerValueAry objectAtIndex:selectedRowInPicker]];
}
答案 2 :(得分:0)
没有。 您只会在选择器停止时获取值。 只有在你得到拣货员委托时才会被召唤。