Skip to content

Conversation

@hansemannn
Copy link
Collaborator

@hansemannn hansemannn commented Aug 30, 2025

This PR adds support for the iOS 26+ "bottomAccessoryView" API on the Ti.UI.TabGroup. It creates a floating bottom view that can be shown / hidden by setting the property. It also adds support for the "minimizeBehavior" property to control the automatic showing / hiding of the view based on certain gestures.

const window = Ti.UI.createWindow({
	title: "Window 1",
	backgroundColor: "#fff",
});

const items = Array.from({ length: 100 }, (_, i) => ({ properties: { title: `Item ${i + 1}` } }));
const listView = Ti.UI.createListView({ sections: [Ti.UI.createListSection({ items })] });
window.add(listView);

const bottomAccessoryView = Ti.UI.createView();
bottomAccessoryView.add(Ti.UI.createLabel({ text: 'Hello world', width: Ti.UI.FILL, height: Ti.UI.FILL, textAlign: 'center' }));


const tabGroup = Ti.UI.createTabGroup({
	tabs: [Ti.UI.createTab({ window, title: "Tab 1" })],
	bottomAccessoryView,
	minimizeBehavior: Ti.UI.iOS.TAB_GROUP_MINIMIZE_BEHAVIOR_ON_SCROLL_DOWN
});

tabGroup.open();
Simulator.Screen.Recording.-.iPhone.16.Pro.-.2025-08-30.at.18.59.10.mov

@janvennemann janvennemann merged commit 99461f5 into tidev:master Sep 1, 2025
6 checks passed
@hansemannn hansemannn deleted the feature/bottom-accessory-view branch September 1, 2025 16:26
@designbymind
Copy link

This is awesome! — I've had a chance to check it out over the weekend and all is working great on my end (both sim and device). Below are some nuances that I found when working with TabGroup bottomAccessoryView:

  • To remove, setting bottomAccessoryView: null can be used.
  • Setting tabBarHidden: true on a Window does not remove/hide the bottomAccessoryView, manual tracking is a must as of now.
  • bottomAccessoryView can be set on a per-Tab bases (for a more context-aware experience). Simply setting the bottomAccessoryView a second time will override the current bottomAccessoryView.
  • For those curious, I found the bottomAccessoryView to be 48pt in height (iPhone SE-16 Pro Max). Note: Apple seems to be moving towards dynamic sizing all around, so this number may not be accurate in the future and probably shouldn't be heavily relied on.

Looking forward to using this, thank you so much for the great work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants