EDIT: Es scheint, dass nach all dieser Lösung arbeiten sollte ich mit Cache hatte einige Probleme
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
ist ein png von 82x49, habe ich getestet mit andere Größen aber das scheint am besten zu passen. Ich teile die width
des Rahmens durch die Anzahl der Elemente, die ich in der Registerkarte habe - in meinem Fall 5, dann erstelle ich ein neues UIImage der "richtigen" Größe und setze es als selectionIndicatorImage
.
2x und 3x Geräte zu unterstützen I verwendet: UIGraphicsBeginImageContextWithOptions (TabSize, NO, [UIScreen mainscreen] .scale); – AlexD