ich UIDatePicker
und UIPickerView
in meiner app verwenden. Aber beide Steuerelemente zeigen seltsames Verhalten. Wenn ich den Inhalt des Auswahlfensters durchblättere, fließt er außerhalb des Auswahlfensters und scrollt nicht wie gewünscht. Meine Implementierung ist wie folgt.UIPickerView Inhalt fließt unerwartet
sexArray = @[@"Male", @"Female"];
UIPickerView *picker = [[UIPickerView alloc] initWithFrame:CGRectMake(0, 50, 100, 150)];
[picker setDataSource: self];
[picker setDelegate: self];
picker.showsSelectionIndicator = YES;
genderTF.inputView = picker;
#pragma mark -- UIPICKERVIEW METHODS
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return sexArray.count;
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row
forComponent:(NSInteger)component reusingView:(UIView *)view {
UILabel *retval = (UILabel*)view;
if (!retval) {
retval = [[UILabel alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 100, [pickerView rowSizeForComponent:component].height)];
}
retval.font = [UIFont fontWithName:@"SourceSansPro-Regular" size:15.0f];
retval.minimumScaleFactor = 0.6;
[retval setTextAlignment:NSTextAlignmentCenter];
retval.text = [sexArray objectAtIndex:row];
return retval;
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
[genderTF setText:sexArray[component]];
}
Wenn der gleiche Code in einer anderen Anwendung (zum Testen) verwendet wird, funktioniert es wie erwartet.
RETVAL = [[UILabel alloc] Initwithframe: CGRectMake (0.0f, 0.0f, 100, [picker rowSizeForComponent: Komponente] .Height)]; zu RETVAL = [[UILabel alloc] Initwithframe: CGRectMake (0.0f, 0.0f, self.view.frame.size.width, [picker rowSizeForComponent: Komponente] .Height)]; –
@rkmakwana Ich denke, die 'Schrift size' oder die' minimumScaleFactor' dies wirkt sich möglicherweise. Ich denke, die Schriftgröße ist höher als die Etikettenhöhe. versuchen Sie, Hintergrundfarbe für das Etikett –