Làm cách nào để loại bỏ phần đệm ngang sang trái và phải của các mục UINavigationBar tùy chỉnh bên trái và bên phải? Có vẻ như ~ 10 điểm đệm mà iOS đặt theo mặc định.Đặt UIBarButtonItem dựa trên chế độ xem tùy chỉnh trong thanh điều hướng không có đệm ngang mặc định
Tôi đang tùy chỉnh các nút thanh điều hướng bên trái và bên phải (Tôi đã từ bỏ việc cố gắng đặt backButtonItem của riêng mình, vì vậy tôi chỉ sử dụng leftBarButtonItem).
Trong cả hai trường hợp (trái hoặc phải), nhấn các nút tùy chỉnh này chỉ ra rằng Apple có vẻ bảo toàn một số đệm bên trái của leftBarButtonItem, và ở bên phải của rightBarButtonItem; bất kể tôi tạo ra các thuộc tính nền và hình ảnh tùy chỉnh của UIButton I như thế nào bên trong mục nút thanh bên trái/bên phải làm chế độ xem tùy chỉnh của nó.
Vì UIBarButtonItems không có "khung" tôi có thể truy cập, tôi không thể định vị chúng trong phạm vi superview của họ như tôi có thể bình thường UIViews.
Bất kỳ đề xuất nào về cách xóa phần đệm mặc định này? Xem ảnh chụp màn hình kèm theo để xem bit tôi đang cố gắng để giảm đến một chiều rộng bằng không. Trong ảnh chụp màn hình, biểu tượng dấu cộng xuất hiện chuyển sang bên phải bởi vì tôi đã cho nó một inset; nhưng hình nền được đánh dấu, cũng có lẽ sử dụng inset đó, đang bị cắt bớt ở bên phải của nó).
Xem hình ảnh tại địa chỉ: https://skitch.com/starbaseweb/rj2e5/ios-simulator
Để tham khảo, dưới đây là cách tôi là tạo ra tùy chỉnh của tôi UIBarButtonItem (trong trường hợp này, đó là nút bên phải):
- (UIBarButtonItem *)customAddButtonItemWithTarget:(id)target action:(SEL)action {
UIButton *customButtonView = [UIButton buttonWithType:UIButtonTypeCustom];
customButtonView.frame = CGRectMake(0.0f, 0.0f, 45.0f, 44.0f);
[customButtonView setBackgroundImage:
[UIImage imageNamed:@"bgNavBarButton-OutsideRight-Normal.png"]
forState:UIControlStateNormal];
[customButtonView setBackgroundImage:
[UIImage imageNamed:@"bgNavBarButton-OutsideRight-Highlighted.png"]
forState:UIControlStateHighlighted];
[customButtonView setImage:
[UIImage imageNamed:@"bgNavBarButton-Add-Normal.png"]
forState:UIControlStateNormal];
[customButtonView setImage:
[UIImage imageNamed:@"bgNavBarButton-Add-Highlighted.png"]
forState:UIControlStateHighlighted];
[customButtonView addTarget:target action:action
forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *customButtonItem = [[[UIBarButtonItem alloc]
initWithCustomView:customButtonView] autorelease];
[customButtonView setImageEdgeInsets:UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 0.0f)];
//customButtonItem.imageInsets = UIEdgeInsetsMake(0.0f, 10.0f, 0.0f, 0.0f);
return customButtonItem;
}
+1: Tôi đã gặp sự cố này và đã thử một số thứ .. bao gồm insets và chỉ tạo hình ảnh ở -10 ở vị trí x và vv..không có may mắn vì vậy tôi chỉ giữ phần đệm nhỏ và làm lại hình ảnh để làm cho nó phù hợp hơn. chúc may mắn. –