问题
我正在开发 IOS 应用程序。 我使用 XLPagerTabStrip 库来创建像在 Android 中一样的标签。 YouTube。 一切正常,但我的选项卡有问题。
我有 3 个标签,但它们不会填满整个宽度,而且它们自己重叠。
父类代码
import UIKit
import XLPagerTabStrip
class InformationsParentView: ButtonBarPagerTabStripViewController {
let purpleInspireColor = UIColor(red:0.13, green:0.03, blue:0.25, alpha:1.0)
override func viewDidLoad() {
super.viewDidLoad()
settings.style.buttonBarBackgroundColor = .white
settings.style.buttonBarItemBackgroundColor = .white
settings.style.selectedBarBackgroundColor = purpleInspireColor
settings.style.buttonBarItemLeftRightMargin = 0
settings.style.selectedBarHeight = 2
settings.style.buttonBarMinimumLineSpacing = 20
settings.style.buttonBarItemTitleColor = .black
settings.style.buttonBarItemLeftRightMargin = 0
settings.style.buttonBarItemsShouldFillAvailiableWidth = true
}
override func viewControllers(for pagerTabStripController: PagerTabStripViewController) -> [UIViewController] {
let tabWorkers = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "sbWorkers")
let tabPLs = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "sbPLs")
let tabSuperiors = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "sbSuperiors")
return [tabWorkers, tabPLs, tabSuperiors]
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
Storyboard
场景
场景
属性检查器
尺寸检查器
信息
我找到了一个解决方案,但它对我不起作用(Github Issue 256):
settings.style.buttonBarItemsShouldFillAvailableWidth = true
wouldn't fill the available width for me unless I specifiedsettings.style.buttonBarItemLeftRightMargin = 0
as well.
有人解决这个问题吗?
我正在使用 XCode 版本 9、Swift 3 和 IOS 11。
最佳答案
打开 pod 中的 ButtonBarPagerTabStripViewController.swift 文件。
在 ButtonBarPagerTabStripViewController 类定义中,删除 UICollectionViewDelegate 协议(protocol)并实现 UICollectionViewDelegateFlowLayout 协议(protocol)。
所以改源码
来自
open class ButtonBarPagerTabStripViewController:
PagerTabStripViewController, PagerTabStripDataSource,
PagerTabStripIsProgressiveDelegate, UICollectionViewDelegate,
UICollectionViewDataSource {
...
}
到
open class ButtonBarPagerTabStripViewController:
PagerTabStripViewController, PagerTabStripDataSource,
PagerTabStripIsProgressiveDelegate, UICollectionViewDataSource,
UICollectionViewDelegateFlowLayout {
...
}
当我将我的应用程序从 XCode 8.3.3 迁移到 XCode 9 时,我遇到了这个问题。这是 pod 的问题。如果您尝试使用 XCode 8.3.3,您将看不到任何错误。如果你想使用 XCode 9,请执行上述方法。
关于ios - XLPagerTabStrip 不填满整个宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46400715/