2

表示される行数をUIPickerView5 から 4 に変更する方法はありますか? IB ではピッカーの高さを調整できないようで、これを制御するデリゲート メソッドが見つかりません。

コンポーネントの行数ではなく、表示される行数について尋ねていることに注意してください。

4

4 に答える 4

3

UIPickerview次のUIPickerViewDelegate方法を使用して、行の高さを設定できます

- (CGFloat)pickerView:(UIPickerView *)pickerView rowHeightForComponent:(NSInteger)component
{
  return 60.0f;
}

4 行を表示するために必要な正確な高さはわかりません。あなたがそれを正しく理解するまで、それをいじる必要があるかもしれません!

于 2013-03-29T05:59:28.020 に答える
0

の高さを設定する場合は、UIPickerView次を使用できます。

picketView.transform = CGAffineTransformMakeScale(1, 0.70);

上記のコードはUIPickerView.

于 2013-03-29T06:02:18.157 に答える
0

UIPickerViewを使用して高さを変更できる、Apple から提供された直接的な方法はありませんsetFrame

しかし、同じことを達成するための 2 つの方法があります。

  • 最初に nib ファイル コード (XML 形式) で、必要に応じてタグの値を変更できます。参照は次のとおりです: Uipickerviewの高さを下げるには?
  • もう 1 つの方法は、コア アニメーション プロパティ (スケールと移動) を使用して高さと幅を変更することです。あなたの要件については、これが役立つと思います。参照は次のとおりです: UIPickerView Height not changeable

これがお役に立てば幸いです。

于 2013-03-29T06:02:44.167 に答える
0

高さを変更すると、各行のサイズと各行のフォントを再調整して、それらが明確かつ個別に表示されるようにする必要があるためです。UiPickerview の有効な高さは 3 つだけです (162.0、180.0、および 216.0)。ただし、次の方法で高さを変更できます

CGAffineTransform t0 = CGAffineTransformMakeTranslation (0, mypickview.bounds.size.height/2);
CGAffineTransform s0 = CGAffineTransformMakeScale       (1.0, 0.5);
CGAffineTransform t1 = CGAffineTransformMakeTranslation (0, -mypickview.bounds.size.height/2);
mypickview.transform = CGAffineTransformConcat          (t0, CGAffineTransformConcat(s0, t1));
于 2013-03-29T06:23:22.620 に答える