3
接近rightBarButtonItem右邊這是我的代碼改變位置在UINavigationBar的
- (void)createCustomBtnRightBar:(UIImage *)buttonImage
{
self.navigationItem.rightBarButtonItem = nil;
UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];
if (buttonImage != nil) {
[button setImage:buttonImage forState:UIControlStateNormal];
button.frame = CGRectMake(0, 0, 45, 33);
button.imageEdgeInsets = UIEdgeInsetsMake(0, 0, 0, -10);
} else {
[button setTitle:@"Add New Pal" forState:UIControlStateNormal];
button.frame = CGRectMake(0, 0, 110, 24);
[button.titleLabel setTextAlignment:NSTextAlignmentRight];
}
[button addTarget:self action:@selector(onClickBtnSendClip:) forControlEvents:UIControlEventTouchUpInside];
[button setBackgroundColor:[UIColor greenColor]];
//create a UIBarButtonItem with the button as a custom view
UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button];
self.navigationItem.rightBarButtonItem = customBarItem;
}
當變化寬度至200
當添加button.titleEdgeInsets = UIEdgeInsetsMake(0, 20, 0, 0);
在所有這些情況下,右側的區域不能移動
我需要的是這樣的。
我甚至試過這種
UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil];
customBarItem.customView = button;
但崩潰
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Fixed and flexible space items not allowed as individual navigation bar button item. Please use the rightBarButtonItems (that's plural) property.'
*** First throw call stack:
(
0 CoreFoundation 0x00000001132a2e65 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000112d19deb objc_exception_throw + 48
2 CoreFoundation 0x00000001132a2d9d +[NSException raise:format:] + 205
3 UIKit 0x000000011156d560 -[UINavigationItem setRightBarButtonItem:animated:] + 131
4 sdsd sdsdsd 0x000000010e042dd3 -[SendClipViewController createCustomBtnRightBar:] + 1475
曾爲完善之前,當我的按鈕欄從故事板和空間上的直接權利更小(根據我的需要)。
任何幫助,將不勝感激。由於
感謝的人。完美的作品。 – jose920405
很高興聽到這個消息 –
使用'self.navigationController.view.layoutMargins.right'獲得實際的保證金 – BugaBuga