/ / Výpočet ľavej šírky UIBarButtonItem - objektív-c, ios, kakaový dotyk

Výpočet ľavej šírky UIBarButtonItem - objektív-c, ios, kakaový dotyk

Zistil som, že pevný spôsob UIBarButtonItem rámušírka je 0. Po googlingu som našiel spôsob, ako prechádzať podviewmi ovládača navigácie, aby sa našla šírka tlačidla ľavého panela. Funguje to, ale zdá sa, že musí existovať čistejší spôsob, ako to urobiť.

Nebolo by dôvod, prečo by moja aplikácia bola odmietnutá za použitie tejto metódy, však?

    UIView *leftBarButtonView = nil;
for (UIView* v in self.navigationController.navigationBar.subviews) {
if ([[v class].description isEqualToString:@"UINavigationButton"])  {
if (leftBarButtonView==nil) {
if (v.frame.origin.x > 0.0)
leftBarButtonView = v;
} else if (v.frame.origin.x < leftBarButtonView.frame.origin.x && v.frame.origin.x>0.0) {
leftBarButtonView = v;  // this view is further right
}
}
}

odpovede:

1 pre odpoveď č. 1

Nie, pravdepodobne nebude zamietnutá - pravdepodobne, as nikto okrem Apple to môžete povedať určite. Jedno je však isté:

[[v class].description isEqualToString:@"UINavigationButton"]

nebude fungovať. Použite

[v isKindOfClass:objc_getClass("UINavigationButton")]

miesto.