uias / tabman Goto Github PK
View Code? Open in Web Editor NEW™️ A powerful paging view controller with interactive indicator bars
Home Page: https://uias.github.io/Tabman
License: MIT License
™️ A powerful paging view controller with interactive indicator bars
Home Page: https://uias.github.io/Tabman
License: MIT License
Creating a TabmanBar
subclass is currently a slightly bespoke and poorly thought out process. The following could be improved:
constructTabBar()
should pass in the contentView for construction.Im using navigation controller for the tabbar my viewcontroller and UITableviews, my tableview controller table item are at the top hidden by the tabbar controller how can i have an inset to put it below.
Add a TabmanBar
style which mirrors the appearance of UITabBar. It should offer a similar appearance, but offer enhanced transitions between items (progressive rather than snap). Should also probably be limited to 5 items.
Can you suggest any solution to push a view. Present work fine but pushing with navigationController does nothing
I'd like to be able to disable the page swiping. Swiping the tabs is fine, but it would be great if it was possible to disable the swiping of pages.
Hello,
I have a question about customizing the location of the bar. Is there a way to specify the location of where the bar is going to be placed? For example, in my view, I have a search bar that is bellow the navigation bar. I would then want to position the tab bar bellow the search bar.
pod install shows this error, when i try to install
[!] Unable to find a specification for Tabman
Ensure that the internally managed TabmanBar
is always on top when subviews are added.
i try using
pod 'Tabman' and
pod 'Tabman', '~> 0.4'
but both are not installing i get error using cocoapod installer
Analyzing dependencies
[!] Unable to find a specification for Tabman (~> 0.4)
Is it possible to enable/configure appearance to have close buttons on each tab?
Add a TabmanBar
style with a block button appearance. The indicator (coloured block) should transition behind the bar items.
Have migrated from MSSTabbedPageViewController. Would like the ability, additional to setting colours, to set the font of the selected item and consequently of unselected items too (could do this previously). Great library by the way! I love it!
Hi,
Like I said in the title, I want to remove this little line under the bar of the .bar style. How is it possible? Thanks!
Add ability to embed an internally managed TabmanBar
in an external specified view.
Is there a chance to add a header above TabBar?
Like here:
https://github.com/noties/Scrollable
Hi, seems useRoundedCorners
property doesn't work.
I checked file TabmanBar.swif
, line 288 update(forAppearance:defaultAppearance:)
method there is no assigning
and
I checked TabmanLineIndicator.swift
which is internal class, line 50 contains
TabmanBar.Appearance.defaultAppearance.indicator.useRoundedCorners ?? false
, so basically you are taking value from defaultAppearance
maybe I got your code not correctly, but property useRoundedCorners
for indicator is not working for me
Hi,
I'm having an issue when using hidesBarOnSwipe in a navigation controller where swiping down to reveal the bar again causes insetChildViewControllerIfNeeded(_ childViewController: UIViewController?) to be called and the child scrollView moves to the top of the content.
It seems that this function is also adjusting the contentOffset, but I think there might be a bug. Is this line:
contentOffset.y = -requiredContentInset.top
meant to be:
contentOffset.y -= requiredContentInset.top
Making this change fixed the problem for me.
Thanks!
I got error message when I Install to pod 'Tabman'
Analyzing dependencies
[!] There are only pre-release versions available satisfying the following requirements:
'Tabman', '>= 0'
You should explicitly specify the version in order to install a pre-release version
Hi, is there way to embed pageViewController
? I found a way how to embed tabBar
, but can't figure out how to move/embed pageViewController
What I'm trying to achieve:
---Tabbar container---
---My custom view (not scrollable)---
---Pages---
Also other screen has
---Custom view---
---Tabbar container---
---Pages---
This is one is working fine, but my pages are going under Custom view and tabbar container, I saw that there is way to have some inset (still trying), but it would be much easier to have ability to embed pageViewController
to any view as tabbar.
Allow for an indicator to 'compress' when over-scrolling à la Instagram
In addition to the requiredContentInset
property in TabmanBarConfig
, Tabman should automatically handle insetting child view controllers within the page view controller.
This should also be able to be disabled via an opt-out property in TabmanViewController
.
Dependencies frameworks are missing in example code. can you please create example code with all required framework so we can test it before integrating in our real-time project.
Thanks
How to handle the native behaviour on android which layout on 2 lines the tabBar text if too long ?
I noticed that the example code (specifically https://github.com/uias/Tabman/blob/master/Example/Tabman-Example/CustomTabmanBar.swift) is using function names that don't correspond to the superclass. I have the pod in my project on my machine and have looked at the TabmanBar.swift file, where the function names seem to be constructTabBar and addIndicatorToBar instead of construct and add. I think the example code needs to be updated.
Thank you!
isScrollEnabled
should be defaulted to true
in TabmanBar.Appearance.Interaction
.
After installing trough pod file this issue started to appear a long with 'atIndex' is deprecated: Use at(index: Int) in TabmanViewController.swift
Using Pageboy (1.0.4)
Using Tabman (0.4.7)
I have the strangest issue I can't seem to figure out. My tableview insets are set so the cells do not appear under my tab bar, but the top initially appears about twice as low as I have it set - until I touch the view. After touching, it scrolls into position and is fine from that point forward. Any advice?
self.tableView.contentInset = UIEdgeInsetsMake(120, 0, -120, 0)
Hello,
First time loading , tabview have space , like image
When I scroll tableview or swipe tab , tableview space disappear , like image
Problem demo file
TabmanTableViewProblem.zip
thanks
Hello. I have found retain cycle between TabmanViewController and TabmanBarConfig. They keep each other in loadView method. This cycle is similar one as in your Pageboy project in which i had created issue few minutes ago. Could you make delegate property in TabmanBarConfig as weak? Thank you.
open override func loadView() {
super.loadView()
self.delegate = self
self.bar.delegate = self
// add bar to view
self.reloadBar(withStyle: self.bar.style)
self.updateBar(withLocation: self.bar.location)
}
Hello,
I have followed the instructions at the main page, but once I set the dataSource in the viewDidLoad the self.reloadPages() in PageboyViewControllerDataSource is executed but it is trying to reference the pageViewController which is nil at that moment.
Bug line: 27 of PageboyControllerManagement.swift
Pods: Tabman 0.4.8, Pageboy 1.0.4, PureLayout 3.0.2
TabmanViewController :
class TimeLockViewController: TabmanViewController, PageboyViewControllerDataSource {
var mainView = TimeLockView()
var child:Children!
//Rx
let disposeBag = DisposeBag() // Bag of disposables to release thvarwhen view is being deallocate
//Mvvm
init(child: Children) {
super.init(nibName: nil, bundle: nil)
self.child = child
self.setupNavigation()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func loadView() {
self.view = mainView
}
override func viewWillAppear(_ animated: Bool) {
self.setupNavigation()
}
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
self.embedBar(inView: self.mainView)
self.setupMvvm()
self.setupRx()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
fileprivate func setupNavigation() {
self.navigationItem.title = child.name ?? ""
}
fileprivate func setupMvvm(){
}
fileprivate func setupRx(){
}
func viewControllers(forPageboyViewController pageboyViewController: PageboyViewController) -> [UIViewController]? {
// return array of view controllers
let viewControllers = [UIViewController(), UIViewController()]
// configure the bar
self.bar.items = [TabmanBarItem(title: "Page 1"),
TabmanBarItem(title: "Page 2")]
return viewControllers
}
func defaultPageIndex(forPageboyViewController pageboyViewController: PageboyViewController) -> PageboyViewController.PageIndex? {
// use default index
return nil
}
}
I would like to make the indicator sticky and I want the anchor point for the active tab to be always the center.
Is this possible with Tabman?
Thanks
Improve documentation to include information about TabmanBar.Appearance
default values. As suggested in uias/Tabman-Styles#1
I would like to propose of removing PureLayout framework from this project.
I can make a pull request for changing to normal constraint without using PureLayout.
Could you update podspec and set Pageboy dependency version as 1.0.1. You have fixed retain cycle in both of them but Tabman uses old version of Pageboy
Hi,
I'm using scrollingButtonBar
style, I found that you are using TabmanScrollingButtonBar.swift
for this. I'm happy with that behavior, but only thing I need is to set minimumItemWidth
, now you have internal
default value as 44.
I think it would be nice to have such property under layout
property of bar Appearance
Thanks!
Hello,
I was wondering for the Appearance
proxy if there is a way to specify a font for the tab that isn't selected? Thanks
after applying localization to my project when I switch language to arabic (right to left) the bar is jammed and not responding
I've added a navigation bar manually to view controller in interface builder and Tabman bar is not showing up below it - it's showing up on top of it. Is there a way to manually set the height of the bar from the top of the screen?
Button bar styles should be able to support separator views in between each item.
Hi, is it possible to embed the Tabman into a UIView, which is the element of the UIViewController?
if possible , how can I do that?
I built this framework with carthage.
Undefined symbols for architecture arm64:
"direct field offset for Tabman.TabmanViewController.(bar.storage in _57F68DA9D23EDB616EF841D0392909A0) : Tabman.TabmanBarConfig?", referenced from:
Tabman.TabmanViewController.bar.setter : Tabman.TabmanBarConfig in ViewController.o
Tabman.TabmanViewController.(bar.materializeForSet : Tabman.TabmanBarConfig).(closure #1) in ViewController.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Add appearance property .text.selectedItemWeight
to TabmanBar.Appearance
that allows for specification of a font weight to use on selected items in a TabmanBar
.
Allow a line separator to be visible at the bottom of TabmanBar
components.
Hi,
I'm using the .bar
style for my bar
appearance. My issue is that the bar indicator
is under the viewControllers
. How can I put it above them? I tried to find it on my own but without result...
Otherwise, thanks m8 this git is so nice, good job!! ;)
Use Fastlane for building Tabman, and configure to allow for automated releases.
Add a TabmanBar
style with the appearance of a UISegmentedControl
. The bar should limit the amount of items it can display, and animate between tabs.
Not sure where this currently sits but I am getting the error:
Undefined symbols for architecture x86_64:
"direct field offset for Tabman.TabmanViewController.(bar.storage in _57F68DA9D23EDB616EF841D0392909A0) : Tabman.TabmanBarConfig?", referenced from:
Tabman.TabmanViewController.bar.setter : Tabman.TabmanBarConfig in NavButtonBarViewController.o
Tabman.TabmanViewController.(bar.materializeForSet : Tabman.TabmanBarConfig).(closure #1) in NavButtonBarViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
When I add the line
github "uias/Tabman" "develop"
To my Cartfile
Thanks
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.