我喜歡在我的swift項目中使用iCarousel,但有一件事我無法克服;我想在我的項目中使用Visual語言來佈局視圖,但是每當我使用iCarousel的可視化格式時,它都不起作用。在Swift中使用視覺格式語言和iCarousel
我注意到問題是TopMenuCarousel.translatesAutoresizingMaskIntoConstraints=false
屬性。
每當我禁用此屬性,我的視覺格式約束被禁用的iCarousel,並且每當我啓用它,約束完美,但我的iCarousel將不會滾動並保持始終。
當前代碼:
#import UIKit
import iCarousel
class Step2_HomePage: UIViewController,iCarouselDelegate,iCarouselDataSource {
let TopMenuCarouselCount = 5
var TopMenuCarousel = iCarousel()
override func viewDidLoad() {
super.viewDidLoad()
print("Step2HomePage icinde")
TopMenuCarousel = iCarousel(frame: CGRect())
view.addSubview(TopMenuCarousel)
// TopMenuCarousel.clipsToBounds = true
TopMenuCarousel.type = .Linear
TopMenuCarousel.dataSource = self
TopMenuCarousel.delegate = self
let views = [ "TopMenuCarousel": TopMenuCarousel ]
// 2
var allConstraints = [NSLayoutConstraint]()
let TopMenuCarouselTop = NSLayoutConstraint.constraintsWithVisualFormat(
"V:|-100-[TopMenuCarousel]",
options: [],
metrics: nil,
views: views)
allConstraints += TopMenuCarouselTop
let TopMenuCarouselHorizontal = NSLayoutConstraint.constraintsWithVisualFormat(
"H:|-0-[TopMenuCarousel]-0-|",
options: [],
metrics: nil,
views: views)
allConstraints += TopMenuCarouselHorizontal
TopMenuCarousel.translatesAutoresizingMaskIntoConstraints=false
NSLayoutConstraint.activateConstraints(allConstraints)
// Do any additional setup after loading the view, typically from a nib.
}
func numberOfItemsInCarousel(carousel: iCarousel) -> Int {
print("carousel number")
return TopMenuCarouselCount
}
func carousel(carousel: iCarousel, viewForItemAtIndex index: Int, reusingView view: UIView?) -> UIView {
print("carousel view icinde")
let tempView = UIView(frame: CGRect(x: 0, y: 0 , width: 20, height: 20))
tempView.backgroundColor = UIColor.blueColor()
return tempView
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
#
大家好, Unfortuntely它沒有工作:( 我確實如你所說,但這個時候,iCarousel觀點並沒有在constaint聲明的垂直高度。 的觀點出現在最左。最多 與我們的任何「垂直」調整屏幕的一角有什麼可以的原因當我刪除的方式,下面一行: 'TopMenuCarousel.translatesAutoresizingMaskIntoConstraints = FALSE' –
我編輯我的回答給你一個完整的示例...''TopMenuCarousel.translatesAutoresizingMaskIntoConstraints' *必須*設置爲false,以便增加約束條件。 – DonMag