アプリのUISlider
をカスタマイズしています。スライダーを垂直方向にしたいのですが、デフォルトのUISlider
は水平方向です。 UISlider
の向きを変更する方法が見つかりませんでした。
XCodeで垂直スライダーを作成するにはどうすればよいですか?
デフォルトでは、UISliderは水平(-)です。縦書き(|)にしたい場合は、おそらくCGAffineTransform
を使用してプログラムで行う必要があります。たとえば、このスニペットをviewDidLoad
に追加したり、適切と思われる場所に追加したりできます。
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2);
slider.transform = trans;
私は問題を抱えていました:
CGAffineTransform trans = CGAffineTransformMakeRotation(M_PI_2);
slider.transform = trans;
viewDidLoadメソッドにコードがあったからです。代わりに、コードをViewDidAppearに配置すると、正常に機能しました。
編集:ViewDidAppearにある必要はありません。ViewDidLoadも正常に機能します(さらに優れています)。自動サイズ変更を無効にするか、回転しているスライダーに制約を設定して、回転後にサイズが変更されないようにすることができます。
自動レイアウトを使用している場合:
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の制約を削除することです。 frameプロパティを設定して、手動でサイズを変更する必要がある場合があります。