我正在使用Carbonkit的CarbonMabSwipeNavigation by ermalkaleci,当视图加载时,视图控制器正确对齐,然后当切换到第二个视图控制器时,第二个视图控制器的对齐是正确的但是当滚动回到第一个viewcontroller,它对齐错误,第二个viewcontroller的一小部分是可见的。尝试了我能找到的一切但到目前为止没有运气。
我当前的设置我使用工具栏但使用insertIntoRootViewController插入时的行为相同:(
class func setupCarbonPages(carbonSwipeTabsItem:CarbonTabSwipeNavigation,tabTitles:[String],totalWidth: CGFloat) -> CarbonTabSwipeNavigation{
// Setup the default style
carbonSwipeTabsItem.toolbar.translucent = false
carbonSwipeTabsItem.setIndicatorColor(AppConfig.BLUECOLOR)
carbonSwipeTabsItem.setNormalColor(AppConfig.BLUECOLOR)
carbonSwipeTabsItem.setSelectedColor(AppConfig.BLUECOLOR, font: UIFont.boldSystemFontOfSize(14))
carbonSwipeTabsItem.setTabExtraWidth(CGFloat(0))
carbonSwipeTabsItem.setNormalColor(AppConfig.BLUECOLOR, font: AppConfig.REGULAR_FONT_16)
carbonSwipeTabsItem.setSelectedColor(AppConfig.BLUECOLOR, font: AppConfig.REGULAR_FONT_16)
// Assign tab width & preload all data
let menuTabItems:UInt = UInt(tabTitles.count)
let tabWidth = (totalWidth / CGFloat(menuTabItems))
for index:UInt in 0 ..< menuTabItems {
carbonSwipeTabsItem.carbonSegmentedControl!.setWidth(tabWidth, forSegmentAtIndex: Int(index))
}
return carbonSwipeTabsItem
}
然后在我的viewcontroller中:
private func setupSwipableTabs(){
let width = self.view.frame.width
carbonTabSwipeNavigation = CarbonTabSwipeNavigation(items: menuTabTitles as [AnyObject], toolBar: self.toolBar,delegate: self)
Helper.setupCarbonPages(carbonTabSwipeNavigation, tabTitles: menuTabTitles, totalWidth: self.view.frame.width).insertIntoRootViewController(self)
Helper.preloadCarbonPages(carbonTabSwipeNavigation, tabs: 2)
}
答案 0 :(得分:0)
尝试在主线程上设置碳纤维试剂盒代码
in
dispatch_async(dispatch_get_main_queue(), {
let width = self.view.frame.width
carbonTabSwipeNavigation = CarbonTabSwipeNavigation(items: menuTabTitles as [AnyObject], toolBar: self.toolBar,delegate: self)
Helper.setupCarbonPages(carbonTabSwipeNavigation, tabTitles: menuTabTitles, totalWidth: self.view.frame.width).insertIntoRootViewController(self)
Helper.preloadCarbonPages(carbonTabSwipeNavigation, tabs: 2)
})
答案 1 :(得分:0)
我发现了问题,由于某些原因,未对齐的viewcontroller的故事板中未选中“剪辑子视图”复选框。它似乎对左侧有一个负面约束,导致视图错误分配,并使viewcontroller剪辑所有子视图强制所有子视图保持在主视图控制器的边界。
答案 2 :(得分:0)
如果要通过storyboard设置viewcontroller。请将容器视图的约束设置为 - 将中心x与超级视图对齐 - 与superview相等的宽度(如果您的容器视图等于superview)。
避免设置前导和尾随约束。移除这两个约束可以解决问题。
答案 3 :(得分:0)
您可以设置其细分的宽度:
carbonTabSwipeNavigation.carbonSegmentedControl?.setWidth(widthItem, forSegmentAt: 0)