私は迅速なプロジェクトでiCarouselを使うのが大好きですが、克服できなかったことが1つあります。プロジェクトのビューのレイアウトにビジュアル言語を使用したいのですが、iCarouselのビジュアルフォーマットを使用するたびに機能しません。SwiftのiCarouselでビジュアルフォーマット言語を使用する
私はこの問題がTopMenuCarousel.translatesAutoresizingMaskIntoConstraints=false
属性であることに気付きました。
この属性を無効にすると、ビジュアルフォーマットの制約はiCarouselでは無効になり、有効にすると制約は完全に機能しますが、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それがうまくいきませんでした:( をあなたが示唆したように、私はやったけどconstaintで宣言されているように、この時間は、iCarouselビューは、垂直方向の高さを持っていませんでした。 ビューが最も左に登場。私たちのいずれかの「縦」調整で画面の隅まで 何の理由することができ、私は削除の方法、次の行では:? 'TopMenuCarousel.translatesAutoresizingMaskIntoConstraints = false'を私はあなたに完全なを与えるために私の答えを編集した –
例...追加された制約が機能するには、 'TopMenuCarousel.translatesAutoresizingMaskIntoConstraints' *をfalseに設定する必要があります。 – DonMag