6 Commits

Author SHA1 Message Date
Robert Moore
93700ab4d9 [Tabs] Improve accessibility for TabBar example. (#8983)
The Tab Bar View Controller with Interface Builder example had no way to
dismiss with Voice Over, disappearing labels, and too much code.  Provides an
AppBar with back button, labels on every child view controller, and better
support for Dynamic Type.

|Before|After 1 AXXXL|After 2 XS|
|---|---|---|
|![IMG_0110](https://user-images.githubusercontent.com/1753199/68987915-134aa200-07fd-11ea-8424-277e0b6eb1ee.PNG)|![IMG_0114](https://user-images.githubusercontent.com/1753199/68987917-1d6ca080-07fd-11ea-8a1c-d1c372665fe5.PNG)|![IMG_0115](https://user-images.githubusercontent.com/1753199/68987918-22c9eb00-07fd-11ea-8b74-ec85cb602e93.PNG)|

Closes #8978
2019-11-18 08:31:07 -05:00
Robert Moore
1ce82c678b
[Tabs] Expand configuration in MDCTabBarView example. (#8498)
Adds configuration options for `preferredLayoutStyle` and toggling
`contentInset`.

|Fewer Tabs (Portrait)|More Tabs (Landscape)|
|---|---|
|![Simulator Screen Shot - iPhone 7 - 2019-09-25 at 09 12 25](https://user-images.githubusercontent.com/1753199/65605352-f3260180-df76-11e9-8fcd-2cd68ec30fa3.png)|![Simulator Screen Shot - iPhone 7 - 2019-09-25 at 09 15 47](https://user-images.githubusercontent.com/1753199/65605434-181a7480-df77-11e9-993d-1a9c4e7a68e0.png)|


Helps exercise #8236
2019-09-25 10:57:40 -04:00
ianegordon
f88dc55511 [Tabs] Add MDCTabViewController (#1482)
* MDCTabBarViewController - like UITabBarViewController, but uses Material Design's MDCTabBar

* MDCTabBarViewController Interface Builder example

It's integrated into the Catalog app as a Tab example. Also demonstrates moving the tab bar from the unselected state to the selected state. Note: this reveals a bug with the unselected state that https://github.com/material-components/material-components-ios/pull/1441 fixes.

* Copyright date is 2017 for these TabBarViewController files. Fix white space issues.

* Add <UITabBarItem *> to local variable in updateTabBarItems

* Address Brian Moore's comments: ran clang-format -style=file on these files,
Modified tabBar delegate protocol: tabBar:willSelectItem: becomes tabBar:shouldSelectItem:
so that MDCTabBarViewController can have a 'shouldSelect' delegate.

* comment correction of ViewController to view controller.

* Add new API to MDCItemBar in preparation for deprecating willSelect: from the delegate protocol, replacing it with shouldSelect:. Revert changes to comment lines that appear to be a mis-configuration at my end to 80 columns.

* Tested more thoroughly, verified that the class still works.

* Restore the delegate willSelect method that we intended in favor of shouldSelect:

* Simplify private/MDCItemBar's delegate protocol, write MDCTabBar public protocol in terms of it, as Brian asked.

* Comment fixes.

* Address Brian Moore's May 31 comments. Adjust color of TabBar in Interface builder example.

* Update README.md
2017-06-06 17:32:21 -04:00
Brian Moore
fd074fca51 [New Component] Tab component with MDCTabBar (#1164)
* Initial implementation of MDCTabBar and private MDCItemBar (#711)

* Add initial headers for MDC*Bar

* Initial chunk of work

* It works…ish

* Update demo images and update style with appearance

* Update Podfile.lock

* Merge

* Merge

* Revert bottom bar for now

* Update description

* Formatting and cleanup

* Manual revert of mistaken changes

* Manual revert of mistaken changes

* Manual revert of mistaken changes

* Update with consistent terminology

* Update constant names

* Update localizable strings

* More naming updates

* Rename TabBar to Tabs, move ItemBar into Tabs/private

* Rename string keys

* Rename string files from ItemBar to Tabs

* Rename string keys header

* Update podspec and move bundle

* Reset Podfile.lock in preparation for re-updating

* Clean update to Podfile.lock, adding MaterialTabs

* Update import paths

* Move CatalogByConvention method to end of file

* Add copyright notice on all h/m files

* Add safe fallbacks for switches

* Use conventional common init method name

* Podfile.lock checksum update

* [Tabs] Initial README template and changes

* [Tabs] Updating intro content.

* [Tabs] Commenting out mention of bottom navigation bars in readme.

* Initial implementation of MDCTabBar and private MDCItemBar (#711)

* Add initial headers for MDC*Bar

* Initial chunk of work

* It works…ish

* Update demo images and update style with appearance

* Update Podfile.lock

* Merge

* Merge

* Revert bottom bar for now

* Update description

* Formatting and cleanup

* Manual revert of mistaken changes

* Manual revert of mistaken changes

* Manual revert of mistaken changes

* Update with consistent terminology

* Update constant names

* Update localizable strings

* More naming updates

* Rename TabBar to Tabs, move ItemBar into Tabs/private

* Rename string keys

* Rename string files from ItemBar to Tabs

* Rename string keys header

* Update podspec and move bundle

* Reset Podfile.lock in preparation for re-updating

* Clean update to Podfile.lock, adding MaterialTabs

* Update import paths

* Move CatalogByConvention method to end of file

* Add copyright notice on all h/m files

* Add safe fallbacks for switches

* Use conventional common init method name

* Podfile.lock checksum update

* [Tabs] Initial README template and changes

* [Tabs] Updating intro content.

* [Tabs] Commenting out mention of bottom navigation bars in readme.

* [Tabs] Correcting resources key in pod spec.

* [Tabs] Correcting implementation of resources key in pod spec.

* [Tabs] Removing duplicate entry in pod spec (cherry pick artifact.)

* [Tabs] Overview written

* [Tabs] Mentioning badges in overview.

* [Tabs] Removing TODO in ready.

* [Tabs] Duplicating tabs example in prep for splitting it into two.

* [Tabs] Examples crudely split apart.

* [Pods] Update of lock, catalog and tests for new version.

* [Tabs] Refactored examples to be in style of supplemented examples.

* [Tabs] Formatting.

* [Tabs] Formatting.

* [Tabs] Formatting.

* Add usage examples

* Add usage examples

* Fix bad merge

* Update import documentation

* Small edits

* Do not show badges for title-only tabs

Also updates the text-only example to toggle upcasing rather than increment non-existent badges.

* Update title-only documentation re: badges

* Update README.md

* Update Podfile.lock

* Manually fix Podfile.lock

* Feature tabs rebase from develop (#7)

* [Docs] Add hero image to top-level README.md (#1100)

* Added hero image.

* Added retina-sized hero image.

* Add `srcset` image tag.

* Flow image to the right.

* Update README.md

* Fixed srcset, duh.

* Update README.md

* Update README.md

* Gave up on srcset+markdown for now.

* Update README.md

* Update README.md

* Increased image size.

* Remove redundant RTL frame adjustment (#1103)

* Made build/test scripts exit with failure if anything failed. (#1088)

* [ReadMes] - First image of each component is too big (#1110)

* MDC_#917 - Activity Indicator Readme Update

* MDC_#917 - Updated remaining readme image links

* MDC_#917 - Fixed typo

* [Site] Removing unused files for and from generated doc site. (#1108)

* [ReadMes] - Updated asset name for collection_cells (#1111)

* Enable Travis CI integration (#1095)

* Add file to kick off Travis

* Checking Travis CI's installed Xcode and simulator devices.

* Adding Cocoapods init to Travis CI config.

* Enabling building in Travis CI config.

* Added temporary dumping of the log file on error.

* Switched Shrine to manual signing.

* Dump Travis code signing options.

* Adding CocoaPods version to debug output.

* Remove code signing reporting from Travis CI config.

* Forcing `build_all` to skip code signing.

* Switching Shrine back to automatic provisioning style.

* Re-enabling testing in Travis CI.

* Bump up verbosity of testing.

* Changing test device from 10.2 to 10.1 to work around Travis CI bug.

* Remove the printing of available devices, Xcode will print them out on error.

* Added more context on failure for Travis CI builds only.

* Re-enable CI for our normal branches.

* Remove "do not merge" file.

* Removing our development team and switching Catalog to automatic profiles.

* Removing our development team and switching Bare to automatic profiles.

* Removing our development team and switching Pesto to automatic profiles.

* Add Travis CI build badge to README.md (#1112)

* Add uploading of testing code coverage results to codecov.io (#1114)

This won't do anything yet, but once we start emitting code coverage files it will.

* Enable test code coverage reports in Xcode and in Travis CI. (#1115)

* Add codecov.io badge to README.md. (#1116)

* Add Codecov config to exclude uninteresting paths. (#1118)

* Extracts header code into method removing repetition (#1119)

* [AppBar] Header stack view in AppBarController (#1121)

Since the header stack view is going to be laid out with auto layout, it should be inited with a CGRectZero. Doing it with self.view.bounds creates a tiny loop since the view is not loaded yet.

* Initial implementation of MDCTabBar and private MDCItemBar (#711)

* Add initial headers for MDC*Bar

* Initial chunk of work

* It works…ish

* Update demo images and update style with appearance

* Update Podfile.lock

* Merge

* Merge

* Revert bottom bar for now

* Update description

* Formatting and cleanup

* Manual revert of mistaken changes

* Manual revert of mistaken changes

* Manual revert of mistaken changes

* Update with consistent terminology

* Update constant names

* Update localizable strings

* More naming updates

* Rename TabBar to Tabs, move ItemBar into Tabs/private

* Rename string keys

* Rename string files from ItemBar to Tabs

* Rename string keys header

* Update podspec and move bundle

* Reset Podfile.lock in preparation for re-updating

* Clean update to Podfile.lock, adding MaterialTabs

* Update import paths

* Move CatalogByConvention method to end of file

* Add copyright notice on all h/m files

* Add safe fallbacks for switches

* Use conventional common init method name

* Podfile.lock checksum update

* Initial implementation of MDCTabBar and private MDCItemBar (#711)

* Add initial headers for MDC*Bar

* Initial chunk of work

* It works…ish

* Update demo images and update style with appearance

* Update Podfile.lock

* Merge

* Merge

* Revert bottom bar for now

* Update description

* Formatting and cleanup

* Manual revert of mistaken changes

* Manual revert of mistaken changes

* Manual revert of mistaken changes

* Update with consistent terminology

* Update constant names

* Update localizable strings

* More naming updates

* Rename TabBar to Tabs, move ItemBar into Tabs/private

* Rename string keys

* Rename string files from ItemBar to Tabs

* Rename string keys header

* Update podspec and move bundle

* Reset Podfile.lock in preparation for re-updating

* Clean update to Podfile.lock, adding MaterialTabs

* Update import paths

* Move CatalogByConvention method to end of file

* Add copyright notice on all h/m files

* Add safe fallbacks for switches

* Use conventional common init method name

* Podfile.lock checksum update

* [Tabs] Initial README template and changes

* [Tabs] Updating intro content.

* [Tabs] Commenting out mention of bottom navigation bars in readme.

* [Tabs] Overview written

* [Tabs] Correcting resources key in pod spec.

* [Tabs] Correcting implementation of resources key in pod spec.

* [Tabs] Mentioning badges in overview.

* [Tabs] Removing TODO in ready.

* [Tabs] Removing duplicate entry in pod spec (cherry pick artifact.)

* [Tabs] Duplicating tabs example in prep for splitting it into two.

* [Tabs] Examples crudely split apart.

* [Pods] Update of lock, catalog and tests for new version.

* [Tabs] Refactored examples to be in style of supplemented examples.

* [Tabs] Formatting.

* [Tabs] Formatting.

* [Tabs] Formatting.

* Add usage examples

* Add usage examples

* Update import documentation

* Small edits

* Do not show badges for title-only tabs

Also updates the text-only example to toggle upcasing rather than increment non-existent badges.

* Update title-only documentation re: badges

* Update README.md

* Update Podfile.lock

* Manually fix Podfile.lock

* [Tabs] Making delegate methods all optional. (#8)

* [Tabs] Now that protocol has optional methods, putting in safety for the method calls. (#9)

* [Tabs] Small changes for UIAppearance support.

* [Tabs] Formatting examples.

* [Tabs] Changed icon example to be an appBar’s bottomBar.

* [Tabs] Styling of examples.

* [Tabs] Example layout correction.

* [Tabs] Example update.

* [Tabs] Example has more ‘content’.

* [Tabs] Removing unused delegate method in example.

* [Tabs] Formatting of code for style.

* [Tabs] Better unselected style choice in icon example.

* [Tabs] More content in example vies.

* [Tabs] iOS 8 support for icons example.

* [Tabs] Still image.

* [Tabs] Video added.

* [Tabs] Renaming for clarity.

* [Tabs] Correcting comment.

* [Tabs] Better organization of example view creation methods.

* [Tabs] Cleaning up imports in example.

* [Tabs] Better code for incrementing badge in example.

* [Tabs] Using local variable vs @property in example

* [Tabs] Example format correction.

* [Tabs] Alphabetizing lists in examples.

* [Tabs] Example code style improvement.

* [Tab] Example NSAssert. Safety.

* [Tabs] Comments and clarity in example.

* [Tabs] clang-format in examples.

* [Tabs] Text color correction in example.

* [Tabs] Catalog tile.

* [Tabs] clang-format in tile.

* [Tabs] Adding IBOutlet for delegate (optional.)

* [Tabs] Fix 32-bit build

* [Tabs] Interface Builder example.

* [Tabs] Beginning Swift example.

* [Tabs] More swift example content.

* [Tabs] Swift example complete

* [Tabs] Swift example PR note implementations.

* [Tabs] Swift formatting

* [Tabs] Formatting in example

* [Tabs] Formatting swift example.

* [Tabs] Swift example clarity.

* [Tabs] Example wrapping revert.

* [Tabs] Example wrapping revert.

* Fixes from review
2017-01-25 11:52:40 -05:00
Adrian Secord
e7b88d30c2 Revert "Initial implementation of MDCTabBar and private MDCItemBar (#711)" (#718)
This reverts commit d23eb1b7a10c14304f0e38b1066b585d807c68c3.
2016-10-04 14:18:49 -04:00
Brian Moore
d23eb1b7a1 Initial implementation of MDCTabBar and private MDCItemBar (#711)
* Add initial headers for MDC*Bar

* Initial chunk of work

* It works…ish

* Update demo images and update style with appearance

* Update Podfile.lock

* Merge

* Merge

* Revert bottom bar for now

* Update description

* Formatting and cleanup

* Manual revert of mistaken changes

* Manual revert of mistaken changes

* Manual revert of mistaken changes

* Update with consistent terminology

* Update constant names

* Update localizable strings

* More naming updates

* Rename TabBar to Tabs, move ItemBar into Tabs/private

* Rename string keys

* Rename string files from ItemBar to Tabs

* Rename string keys header

* Update podspec and move bundle

* Reset Podfile.lock in preparation for re-updating

* Clean update to Podfile.lock, adding MaterialTabs

* Update import paths

* Move CatalogByConvention method to end of file

* Add copyright notice on all h/m files

* Add safe fallbacks for switches

* Use conventional common init method name

* Podfile.lock checksum update
2016-10-04 12:29:16 -04:00