我希望我能给你看一张照片,但我的导航栏右上角有两个按钮,左边有一个刷新按钮。标题位于中间,但前两个字母被右边的一个按钮覆盖。
如何“推送”我的标题(或标题视图 - 任何一个),以便标题移动一点?我想将它移动到右边60像素。
下面的代码实现我想要的 - 但是 - 由于某些原因,按钮不起作用。按钮的代码与我之前使用的代码(以及以前使用的代码)相同,唯一的区别是它现在存储在“工具”工具栏/数组中。
关于为什么我的按钮现已停用的任何想法?
// creating the two center buttons in the navigation bar
// create a toolbar to have two buttons in the right
UIToolbar* tools = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0, 0, 44.01)];
// create the array to hold the buttons, which then gets added to the toolbar
NSMutableArray* buttons = [[NSMutableArray alloc] initWithCapacity:5];
// create a non-bordered button (ends up looking like a title)
UIBarButtonItem *bi = [[UIBarButtonItem alloc] initWithTitle:@"Photos" style:UIBarButtonItemStylePlain target:self action:NULL];
initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:NULL];
[buttons addObject:bi];
[bi release];
// create a spacer
bi = [[UIBarButtonItem alloc]
initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil];
[buttons addObject:bi];
[bi release];
// create another button with a camera icon
bi = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCamera target:self action:@selector(showPhotoPicker)];
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 another button with 'your photos'
bi = [[UIBarButtonItem alloc] initWithTitle:@"your photos" style:UIBarButtonItemStyleBordered target:self action:@selector(showUserGallery)];
bi.style = UIBarButtonItemStyleBordered;
[buttons addObject:bi];
[bi release];
答案 0 :(得分:0)
我认为你不能改变标题的框架。 意思是你只能破解; 1)在开始时添加一些空白区域。 2)将标题留空,并创建一个新标签 - 将该标签放在导航栏上。
希望有所帮助,这就是我现在能想到的。 〜纳塔纳瓦拉。
答案 1 :(得分:0)
Miriam,也许以下代码可以帮到你。 在我的NavBarController的viewDidLoad中,我使用它将图像稍微放在我的NavBar中心的右侧,而不是使用标准的“标题文本”。而且“后退按钮”对我来说仍然很好。
UINavigationBar *navBar = [self navigationBar];
//inside the CGRectMake(), I can change the POSITION of my image, putting it anywhere.
UIView* imgContainer = [[UIView alloc] initWithFrame:CGRectMake(90, 10, 50, 80)];
UIImageView *imageView = (UIImageView *)[navBar viewWithTag:kSCNavBarImageTag];
imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"nav-bar-bg.png"]];
[imageView setTag:kSCNavBarImageTag];
[imgContainer addSubview:imageView];
[self.navigationBar addSubview:imgContainer];
UIColor *myColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
[navBar setTintColor:myColor];
[imageView release];
我认为你可以使用相同的方法:创建一个“viewContainer”(在我的例子中改为imageContainer)并将你的标题放在其中。 我没有尝试过你的场景,但也许它可行。
希望它对你有所帮助。 问候。