我正在遵循这里的第二个提示。在此提示中,将两个UIBarButtonItems放在UIToolbar中。最后,将UIToolbar添加到UINavigationBar中。现在是我的问题:
1)在UIToolbar的顶部有一条白线。如果我增加UIToolbar的大小,则渐变会出现问题。我正在使用以下大小的UIToolbar:
如何去掉白线?请看这里:
问题是白线应该是灰色的,如果是灰色的话就完美了。
2)iPhone 3和iPhone 4的显示尺寸有什么区别?我需要检查使用的是哪种iPhone,然后将大小加倍吗?
编辑:
按钮的创建方式如下面从上述网站中提取的示例一样:
1)在UIToolbar的顶部有一条白线。如果我增加UIToolbar的大小,则渐变会出现问题。我正在使用以下大小的UIToolbar:
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 90, 44.01)];
如何去掉白线?请看这里:
![alt text](https://istack.dev59.com/xTkS4.webp)
2)iPhone 3和iPhone 4的显示尺寸有什么区别?我需要检查使用的是哪种iPhone,然后将大小加倍吗?
编辑:
按钮的创建方式如下面从上述网站中提取的示例一样:
// 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.:
我尝试对UIToolbar
进行子类化。
// 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
initWithFrame:
或initWithCoder:
中适当设置self.opaque = NO
、self.backgroundColor = [UIColor clearColor]
和self.clearsContextBeforeDrawing = YES
。 - tc.initWithFrame:
方法(请看我的编辑过的问题)。乍一看似乎可以工作。我以前从未子类化过UI元素。我需要注意什么(哪些东西不能用或类似的东西)吗? - testing