簡體   English   中英

如何讓UISlider垂直?

[英]How to put UISlider vertical?

我想垂直放置UISlider 我不知道這個,所以請幫助我。

你必須這樣做。 假設您的UISlider綁定到名為slider的變量,請在ViewController.m的viewDidLoad方法中添加此代碼:

- (void)viewDidLoad {

    [super viewDidLoad];

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

如果您需要更多幫助,請告訴我..

從Xcode 4.2開始,您可以在Interface Builder 執行相同操作。

  • 創建一個滑塊
  • 顯示“身份檢查員”
  • 添加“用戶定義的運行時屬性”
  • 將鍵路徑設置為“layer.transform.rotation.z”,類型為 “字符串”( “數” 不允許浮點值) (可能從Xcode 5開始),值為“-1.570795”( - π/ 2)。

不幸的是,它仍然在Interface Builder中顯示為水平。

但是您可以定位中心而不需要創建自定義類,因此在某些情況下它可能非常有用。 效果與ravinsp的代碼相同。

斯威夫特3:

slider.transform = slider.transform.rotated(by: CGFloat(0.5 * Float.pi))

//如果需要,使用1.5反轉滑塊的陰影

如果您使用自動布局:

在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屬性手動調整大小。

使用IBOutlet和setter觀察者。 如果您希望最大值位於底部,則將pi除以正2

@IBOutlet weak var slider: UISlider! {
    didSet {
        slider.transform = CGAffineTransform(rotationAngle: .pi / -2)
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM