일반적으로의 각 탭 UITabBar
에는 탭 이름을 지정하는 작은 이미지와 제목이 있습니다. 이미지는 아래의 제목을 수용하기 위해 탭의 상단을 향해 위치 / 중앙에 배치됩니다. 내 질문은 : 이미지 만있는 tabBar를 원하고 제목이없는 경우 이미지를 아래로 이동하여 탭 내에서 더 중앙에 위치하도록하는 방법이 있습니까?
현재 사용 중입니다 (아래 참조).
[tabBarItem setFinishedSelectedImage:tabSelected withFinishedUnselectedImage:tabUnselected];
그러나 제목이없는 더 큰 이미지를 사용하는 것을 선호합니다. 현재 이미지를 약 70pixels @ 2x보다 크게 만들면 UITabBar
아래쪽에 사용되지 않은 공간이 많이 남는 동안 위쪽에서 가장자리가 튀어 나오기 시작합니다 .
답변
조정 해보십시오 tabBarItem
‘들 imageInsets
과 (어떤 제목이 표시되지 않도록) 전무에 컨트롤러 제목을 설정 (아이콘 이미지를 이동). 뷰 컨트롤러에 다음과 같이 -init
또는 -viewDidLoad
메소드 를 넣으십시오 .
목표 -C
self.tabBarItem.imageInsets = UIEdgeInsetsMake(6, 0, -6, 0);
self.title = nil;
빠른
self.tabBarItem.imageInsets = UIEdgeInsets(top: 6, left: 0, bottom: -6, right: 0)
self.title = nil
UITabBarItem
의 서브 UIBarItem
갖는 UIEdgeInsets imageInsets
속성. 보기 좋게 보일 때까지 삽입물로 약간 재생 (탭바 아이콘 이미지에 따라 다름)
답변
답변
의 하위 클래스를 만들고 UITabBarController
그 안에 viewDidLoad
:
- (void)viewDidLoad
{
[super viewDidLoad];
[self.viewControllers enumerateObjectsUsingBlock:^(UIViewController *vc, NSUInteger idx, BOOL *stop) {
vc.tabBarItem.title = nil;
vc.tabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0);
}];
}
스위프트 3 :
for vc in self.viewControllers! {
vc.tabBarItem.title = nil
vc.tabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0)
}
답변
Xamarin을 사용하는 경우 다음과 같이 작동합니다.
screen.TabBarItem.ImageInsets = new UIEdgeInsets(5, 0, -5, 0);
screen.TabBarItem.Title = "";
답변
이것은 나를 위해 일했습니다.
스위프트 4
let array = tabBarController?.customizableViewControllers
for controller in array! {
controller.tabBarItem.imageInsets = UIEdgeInsetsMake(5, 0, -5, 0)
}
답변
SWIFT 3.0
이미지 lnsets, set top, left, bottom, right desing에 따라 설정할 수 있습니다.
self.tabBarItem.imageInsets = UIEdgeInsets(top: 5, left: 0, bottom: 0, right: 0)
답변
iOS 11의 경우 ImageInsets 설정과 별도로 TraitCollection 메서드 를 재정의해야합니다 . 서브 클래 싱 된 UITabBarController 클래스에 메소드를 추가하십시오.
public override UITraitCollection TraitCollection {
get {
return UITraitCollection.FromHorizontalSizeClass(horizontalSizeClass: UIUserInterfaceSizeClass.Compact);
}
}