ich nach der zweiten Spitze von here. In diesem Tipp werden zwei UIBarButtonItems in einer UIToolbar zusammengefasst. Schließlich wird die UIToolbar zur UINavigationBar hinzugefügt. Nun zu meinen Problemen:UIToolbar mit zwei UIBarButtonItem zu einem UINavigationBar Hinzufügen: schlecht UIToolbar und was iPhone 4
1) Eine weiße Linie ist auf der Oberseite des UIToolbar. Wenn ich die Größe der UIToolbar vergrößere, ist der Gradient falsch. Ich verwende die folgende Größe für die UIToolbar:
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 90, 44.01)];
Wie kann ich die weiße Linie loswerden? Siehe hier:
Das Problem ist, dass es eine weiße statt einer grauen Linie gibt. Wenn es grau wäre, wäre alles perfekt.
2) Was ist mit dem Unterschied der Displaygröße von iPhone 3 und iPhone 4? Muss ich überprüfen, welches iPhone verwendet wird, und dann die Größe verdoppeln?
Edit:
Die Tasten wie im folgenden Beispiel erstellt werden, die ich von der oben genannten Website hat:
// create a toolbar to have two buttons in the right
UIToolbar* tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 133, 44.01)];
// create the array to hold the buttons, which then gets added to the toolbar
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:3];
// create a standard "add" button
UIBarButtonItem* bi = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:NULL];
bi.style = UIBarButtonItemStyleBordered;
[buttons addObject:bi];
[bi release];
// create a spacer
bi = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
[buttons addObject:bi];
[bi release];
// create a standard "refresh" button
bi = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemRefresh target:self action:@selector(refresh:)];
bi.style = UIBarButtonItemStyleBordered;
[buttons addObject:bi];
[bi release];
// stick the buttons in the toolbar
[tools setItems:buttons animated:NO];
[buttons release];
// and put the toolbar in the nav bar
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:tools];
[tools release];
@ tc .:
Ich versuchte UIToolbar
Unterklasse.
// MyToolbar.h
#import <Foundation/Foundation.h>
@interface MyToolbar : UIToolbar {
}
@end
// MyToolbar.m
#import "MyToolbar.h"
@implementation MyToolbar
- (void)drawRect:(CGRect)rect {
// do nothing
}
- (id)initWithFrame:(CGRect)aRect {
if ((self = [super initWithFrame:aRect])) {
self.opaque = NO;
self.backgroundColor = [UIColor clearColor];
self.clearsContextBeforeDrawing = YES;
}
return self;
}
@end
Ich habe versucht, 'UIToolbar' abzuleiten. Jetzt habe ich einen schwarzen Hintergrund für meine Symbolleiste. Welche Funktionen muss ich implementieren, dass ich den gleichen Gradient/Stil von der 'UINavigationBar' bekomme. – testing
Hmmm. Versuchen Sie zusätzlich, 'self.opaque = NO',' self.backgroundColor = [UIColor clearColor] 'und' self.clearsContextBeforeDrawing = YES' in 'initWithFrame:' oder 'initWithCoder:' entsprechend einzustellen. –
Jetzt habe ich 'initWithFrame:' überschrieben (siehe meine bearbeitete Frage). Dies scheint auf den ersten Blick zu funktionieren. Ich habe noch nie ein UI-Element subclassiert. Muss ich mir etwas bewusst sein (Dinge, die nicht funktionieren oder so ähnlich)? – testing