43

UISlider縦に入れたい。私はこれについて何も知らないので、これについて私を助けてください。

4

5 に答える 5

105

これをプログラムで行う必要があります。UISlider が という変数にバインドされていると仮定してslider、ViewController.m の viewDidLoad メソッドに次のコードを追加します。

- (void)viewDidLoad {

    [super viewDidLoad];

    CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI * 0.5);
    slider.transform = trans;
}

これについてさらに助けが必要な場合はお知らせください..

于 2010-03-04T05:38:32.190 に答える
30

Xcode 4.2以降、InterfaceBuilderでも同じことができます。

  • スライダーを作成する
  • 「IDインスペクター」を表示する
  • 「ユーザー定義のランタイム属性」を追加します
  • キーパスを「layer.transform.rotation.z」に設定します。タイプは次のとおりです。"弦" ("番号"浮動小数点値は許可されません)(Xcode 5以降で可能)および「-1.570795」(-π/ 2)の値。

残念ながら、InterfaceBuilderでは水平として表示されます。

ただし、中心を配置することができ、カスタムクラスを作成する必要がないため、場合によっては十分に役立つことがあります。効果はravinspのコードと同じです。

于 2012-06-29T12:32:02.410 に答える
4

自動レイアウトを使用する場合:

あなたのviewDidLoadで、試してください:

UIView *superView = self.sizeSlider.superview;
[self.sizeSlider removeFromSuperview];
[self.sizeSlider removeConstraints:self.view.constraints];
self.sizeSlider.translatesAutoresizingMaskIntoConstraints = YES;
self.sizeSlider.transform = CGAffineTransformMakeRotation(M_PI_2);
[superView addSubview:self.sizeSlider];

制約では機能しないため、uislider の制約を削除するのがコツです。フレーム プロパティを設定して、手動でサイズを変更する必要がある場合があります。

于 2014-03-06T07:07:34.827 に答える
0

IBOutlet とセッター オブザーバーの使用。最大値を一番下にしたい場合は、pi を正の 2 で割ります。

@IBOutlet weak var slider: UISlider! {
    didSet {
        slider.transform = CGAffineTransform(rotationAngle: .pi / -2)
    }
}
于 2018-06-21T00:06:02.623 に答える