Skip to content

Commit f5c15bc

Browse files
vchimevADjenkov
authored andcommitted
feat(ios-bottom-navigation): create tab bar from image nad label
Implements NativeScript/nativescript-angular#1893 for iOS.
1 parent 3111b03 commit f5c15bc

File tree

1 file changed

+22
-10
lines changed

1 file changed

+22
-10
lines changed

tns-core-modules/ui/bottom-navigation/bottom-navigation.ios.ts

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -486,22 +486,20 @@ export class BottomNavigation extends TabNavigationBase {
486486
items.forEach((item, i) => {
487487
const controller = this.getViewController(item);
488488

489-
let icon = null;
490-
let title = "";
491-
492489
if (this.tabStrip && this.tabStrip.items && this.tabStrip.items[i]) {
493-
const tabStripItem = <TabStripItem>this.tabStrip.items[i];
494-
icon = this._getIcon(tabStripItem.iconSource);
495-
title = tabStripItem.title;
496-
497-
const tabBarItem = UITabBarItem.alloc().initWithTitleImageTag((title || ""), icon, i);
498-
updateTitleAndIconPositions(tabStripItem, tabBarItem, controller);
490+
const item = <TabStripItem>this.tabStrip.items[i];
491+
const tabBarItem = this.createTabBarItem(item, i);
492+
updateTitleAndIconPositions(item, tabBarItem, controller);
499493

500494
applyStatesToItem(tabBarItem, states);
501495

502496
controller.tabBarItem = tabBarItem;
497+
<<<<<<< HEAD
503498
(<any>tabStripItem).index = i;
504499
tabStripItem.setNativeView(tabBarItem);
500+
=======
501+
item.setNativeView(tabBarItem);
502+
>>>>>>> feat(ios-bottom-navigation): create tab bar from image nad label
505503
}
506504

507505
controllers.addObject(controller);
@@ -514,6 +512,20 @@ export class BottomNavigation extends TabNavigationBase {
514512
this._ios.moreNavigationController.delegate = this._moreNavigationControllerDelegate;
515513
}
516514

515+
private createTabBarItem(item: TabStripItem, index: number): UITabBarItem {
516+
let image: UIImage;
517+
let title: string;
518+
519+
// Image and Label children of TabStripItem
520+
// take priority over its `iconSource` and `title` properties
521+
image = item.image ? this._getIcon(item.image.src) : this._getIcon(item.iconSource);
522+
title = item.label ? item.label.text : item.title;
523+
524+
const tabBarItem = UITabBarItem.alloc().initWithTitleImageTag(title, image, index);
525+
526+
return tabBarItem;
527+
}
528+
517529
private _getIconRenderingMode(): UIImageRenderingMode {
518530
return UIImageRenderingMode.AlwaysOriginal;
519531
}
@@ -611,4 +623,4 @@ function getTitleAttributesForStates(view: View): TabStates {
611623
function applyStatesToItem(item: UITabBarItem, states: TabStates) {
612624
item.setTitleTextAttributesForState(states.normalState, UIControlState.Normal);
613625
item.setTitleTextAttributesForState(states.selectedState, UIControlState.Selected);
614-
}
626+
}

0 commit comments

Comments
 (0)