2016-04-06 8 views
1

私はiOSの開発に慣れていて、グラフィカルな問題を抱えています。 Googleマップビューの上に表示されるUIPickerViewを作成しました。ピッカーの幅をメインビューの幅と一致させたいと思います。 現在、ピッカーは常にビューの3/4を取っているし、左上の角に探している:UIPickerViewの幅をビューに合わせる

the picker is not center and does not fill the view

私がいることをやろう:

func pickerView(pickerView: UIPickerView, widthForComponent component: Int) -> CGFloat { 
    return self.view.bounds.width 
} 

しかし、ここでは結果であり、 : The text inside picker is center but the picker does not fill the view

そして、ここで私が持っているしたいものです。 My goal 任意のアイデア?ストーリーボードでこれを設定できますか?迅速ではありませんか?

答えて

1

レイアウトの問題。

ピッカービューの自動レイアウト制約を確認してください.Xcodeを使用して制約を自動的に設定する場合は、固定値の幅または高さの制約があります。

あなたはpickerView、プログラムあなたのフレームがビューと同じ幅を持っていることを確認し、または制約が正しいことを

編集(Sharatの答えを参照)を添加した場合:プログラムでpickerView幅を設定するためのコード -

//call this in viewDidLoad 
func resizePickerViewToScreenWidth(){ 
    let oldFrame = airspacePicker.frame 
    var newFrame = oldFrame 
    newFrame.size.width = view.frame.size.width 
    airspacePicker.frame = newFrame 
} 

編集2:コードをプログラムpickerView

​​
+0

申し訳ありませんが、自動レイアウトの制約はどこですか?どこでもチェックしていますが、最大幅に対応する600以外の固定値はありません。 ストーリーボードの幅と高さが「任意」に設定されています。 – Teiki

+0

あなたの制約のスナップショットを取ってもよろしいですか?彼らは私が見つけたこのイメージで開いているhttp://3.bp.blogspot.com/-s_SrqWAcaGY/VYFr-I3IHuI/AAAAAAAAJlY/iyRa6qch1ME/s1600/view1e_all_constraints.tiff –

+0

私は600の最大幅の制約は、あなたがランドスケープモードであるように見えるので、ビューの幅がそれよりも大きくなる可能性があります。 –

2

uipickerviewの制約を作成できます。ピッカービューを選択して、次の制約を設定します。ストーリーボードで制約を設定できます。

後続スペース:0 先頭のスペース:0 ボトンスペース:0

あなたの問題は、コンポーネントの幅は、self.view.bounds.widthがすでに持っている、という固定されていないhttps://www.raywenderlich.com/115444/auto-layout-tutorial-in-ios-9-part-2-constraints

+0

を作成するには、私はuipickerviewにピンボタンから制約を追加しようとしました。 – Teiki

+0

メインビューに対応する制約を設定します。最初にピッカービューをクリックしてピンボタンをクリックし、Constrains to Marginのチェックマークを外し、3辺の制約をゼロに設定します(上に依存する制約を設定しないでください)。 –

+0

これは簡単ですが、間違っています。 ここで、私があなたが言ったことをしたところで、それがうまくいかないスナップショットがあります: http://hpics.li/c585a84 http://hpics.li/4abcfd9 – Teiki

関連する問題