EDIT: Wydaje się, że mimo wszystko to rozwiązanie powinno działać, miałem pewne problemy z pamięcią podręczną
UIImage *selTab = [[UIImage imageNamed:@"tabHighlight"] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal];
CGSize tabSize = CGSizeMake(CGRectGetWidth(self.view.frame)/5, 49);
UIGraphicsBeginImageContext(tabSize);
[selTab drawInRect:CGRectMake(0, 0, tabSize.width, tabSize.height)];
UIImage *reSizeImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
//
[self.tabBar setSelectionIndicatorImage:reSizeImage];
tabHiglight
JEST png od 82x49, Przetestowałem z inne rozmiary, ale wydaje się to pasować najlepiej. Podzielę width
ramki przez liczbę elementów, które mam w tabBar - w moim przypadku 5, a następnie tworzę nowy UIImage "właściwego" rozmiaru i ustawię go jako selectionIndicatorImage
.
wspieranie 2x i 3x urządzeń co do stosowanych: UIGraphicsBeginImageContextWithOptions (tabSize NO [UIScreen mainScreen] .scale); – AlexD