Ich versuche eine App mit einem UIPicker im Querformat zu entwickeln, die (fast) die gesamte Breite des Bildschirms (mit 5 oder 6 Komponenten) einnimmt. Kannst du mir bitte sagen, wie ich die Größe von UIPicker einstellen soll? Vielen Dank für Ihre Hilfe.UIPicker Sizing im Querformat
Antwort
Sie können nicht. Die Größe von UIPickerView ist konstant.
UPDATE: Es stellt sich heraus Sie können eine UIPickerView ändern. Der Trick besteht darin, sie in eine andere (kleinere) UIView einzufügen und ihre Größe zu ändern. Ich habe das noch nicht ausprobiert.
UPDATE 2: Diese Methode ändert die Größe von UIPickerView nicht, sondern schneidet sie ab. Es könnte sein, oder nicht, was Sie suchen, aber AFAIK, es gibt keine Möglichkeit, die Größe eines UIPickerView wirklich zu ändern, und das ist so nah wie es geht. Es sieht nicht dass schlecht aus.
UPDATE 3 (Überfällig): Ab SDK 3.0 kann UIPickerView mit initWithFrame oder setFrame vollständig in der Größe geändert werden.
Ich bin ziemlich sicher, dass der UIPicker in einer Größe kommt, die Sie nicht ändern können. Würde mich interessieren, anders zu hören.
Sie können die Größe bearbeiten, indem Sie die .xib-Datei in TextEdit öffnen und die Größe von UIPickerView ändern.
Eigentlich habe ich die Größe meiner Picker für fast jede App angepasst. Ich mag es nicht, dass sie den ganzen Bildschirm einnehmen. Hier ist die Methode, die ich benutze: (beachten Sie, dass ich auch den Picker am rotierenden horizontal zu sein)
in viewDidLoad .....
picker = [[UIPickerView alloc] initWithFrame:CGRectZero];
picker.delegate = self;
picker.dataSource = self;
picker.showsSelectionIndicator = NO;
//Resize the picker, rotate it so that it is horizontal and set its position
CGAffineTransform rotate = CGAffineTransformMakeRotation(-1.57);
rotate = CGAffineTransformScale(rotate, .46, 2.25);
CGAffineTransform t0 = CGAffineTransformMakeTranslation(3, 22.5);
picker.transform = CGAffineTransformConcat(rotate,t0);
[self.view addSubview:picker];
[picker release];
Dann Ich mag ein Hintergrundbild hinzuzufügen, für Meine Ansicht, die die grauen Balken (die nun an der Ober- und Unterseite) des UIPicker zudeckt:
//Create the overlay to superimpose ontop of the picker
//In this case, the image is the size of the screen with a transparent area the size of the //UIPickerView cut out in the middle
UIImageView *uiiv = [[UIImageView alloc]
initWithImage:[UIImage imageNamed:@"problem_bg.png"]];
uiiv.userInteractionEnabled = NO;
uiiv.opaque = YES; //for performance
[self.view addSubview:uiiv];
[uiiv release];
UIPickerView Delegatmethode:
-(UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)rowforComponent:(NSInteger)component reusingView:(UIView *)view
{
UIView *viewForRow = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 280)] autorelease];
UIImageView *img = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myimage.png"]];
img.frame = CGRectMake(0, 0, 102,280);
img.opaque = YES;
[viewForRow addSubview:img];
[img release];
UILabel *label;
UIFont *font = [ UIFont fontWithName:@"Helvetica" size:20];
label = [[[UILabel alloc] initWithFrame:CGRectMake(10, 20, 270, 100)] autorelease];
label.text = @"I am a label";
label.textAlignment = UITextAlignmentCenter;
label.textColor = [UIColor blackColor];
label.font = font;
label.backgroundColor = [UIColor clearColor];
label.opaque = NO;
[viewForRow addSubview:label];
CGAffineTransform rotate = CGAffineTransformMakeRotation(1.57);
[viewForRow setTransform:rotate];
return viewForRow;
}
Dies ergibt einen viel kleineren, horizontalen Picker mit einer schönen Optik und Haptik. Ich hoffe, das hilft jemandem.
Kein Problem (ich habe mich gerade angemeldet). Übrigens habe ich gerade festgestellt, dass die Methode (UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent ....
den Abstand zwischen row und forComponent verloren hat, als ich meine Antwort gepostet habe. Stellen Sie also sicher, dass der Delegat korrekt ist, sonst funktioniert es nicht.
Die Antwort ist in:
-(UIView *) pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
Da mit:
- (NSString*)pickerView:(UIPickerView*)pv titleForRow:(NSInteger)row forComponent:(NSInteger)component
macht die Arbeit es (das heißt: seitlich mit skalierten Label) natürlich
ich mit dem gleichen Problem gerungen Größenänderung des Picker Views. Nach etwas Forschung und Kopfschmerzen hier ist etwas, was Sie leicht tun können:
- Vergessen Sie Interface Builder!Ich denke, Sie können so viel besser UI ohne der Schnittstelle Builder.
In Ihren Controllern überschreiben Sie die Lastansichtsmethode.
-(void)loadView { //create your view self.view = [[UIView alloc] initWithFrame:CGRectZero]; // create a default sized pickerView pickerView = [[UIPickerView alloc] initWithFrame:CGRectZero]; pickerView.delegate = self; pickerView.dataSource = self; pickerView.showsSelectionIndicator = YES; // Get its frame CGRect pickerFrame = pickerView.frame; // Set it to what ever you like, I use a default screen height times a shrink factor like 0.75 for 3/4 of its original size pickerFrame.size.width = screenWidth*pickerShrinkFactor; pickerFrame.size.height = pickerHeight*pickerShrinkFactor; // You can also set the upper left corner of the picker pickerFrame.origin.x = 0; // Set the picker frame to new size and origin pickerView.frame = pickerFrame; // Add it to your view [self.view addSubview:pickerView]; }
Viel Glück
- 1. AutoCompleteTextView Hinweise im Querformat
- 2. Rückgabe (Android.hardware.Camera) im Querformat
- 3. Display-Dialog im Querformat
- 4. Tonhöhenprobleme im Querformat
- 5. YotubePlayerSupportFragment Vollbildansicht im Querformat
- 6. CGContextDrawPDFPage im Querformat?
- 7. Splash (Startbild) im Querformat?
- 8. Kameradatenbytes [] immer im Querformat?
- 9. automatisch Sizing UIView nach Fenster
- 10. Anzeigen von MFMailComposeViewController im Querformat
- 11. UINavigationController Navigationsstack Probleme im Querformat
- 12. WPF zu XPS im Querformat
- 13. UIView hat im Querformat Hochformat?
- 14. ein Bild im Querformat drucken?
- 15. Tastatur öffnet sich im Vollbildmodus im Querformat
- 16. UIPicker View in Xamarin.iOS
- 17. UIPicker wischt nicht reagiert
- 18. wie UIPicker datasource
- 19. UIPicker und Tastaturkonflikt
- 20. Querformat
- 21. Hardware Sizing
- 22. Monotouch Ansicht im Hochformat/Querformat drehen
- 23. Starten der Anwendung im Querformat für IPad
- 24. Drucken und Vorschau DataGridView im Querformat
- 25. Phonegap Plugin DatePicker funktioniert nicht im Querformat
- 26. Arbeiten mit AutoLayout im Hoch- und Querformat
- 27. Android Toolbar: kleiner Titel Text im Querformat
- 28. Video abspielen mit AVPlayer im Querformat
- 29. Oracle-Bericht wird nicht im Querformat ausgeführt
- 30. Medienabfragen für das Drucken im Querformat?
Es half mir, Dank einer Million – qui