簡體   English   中英

IOS Swift中一起限制進度條和標簽

[英]Constraints for progress bar and label together in IOS Swift

我需要基於某種條件和基於不同的條件水平顯示彼此相鄰的進度條和標簽,我需要垂直顯示標簽和進度條一個在另一個下方。 第三個條件是我隱藏標簽並僅顯示進度欄。 對於第三個條件,我希望進度條占據屏幕的整個寬度-屏幕兩端的空間。 最初,我首先放置約束以使其並排顯示,並且它起作用了。 但是,對於其他兩個條件,當我嘗試在運行時修改現有約束時,它變得混亂並且無法按預期工作。 在這些情況下,有關約束外觀的任何指示。 附件是進度條和標簽並排的圖像 在此處輸入圖片說明

我需要根據某些條件和不同條件水平顯示彼此相鄰的進度條和標簽

以此目的

進度條約束

在此處輸入圖片說明

標簽約束

在此處輸入圖片說明

我需要在垂直下方顯示標簽和進度條

以此目的

進度條約束

在此處輸入圖片說明

標簽約束

在此處輸入圖片說明

第三個條件是我隱藏標簽並僅顯示進度欄。 對於第三個條件,我希望進度條占據屏幕的整個寬度-在其兩端都有一些空間

這個有點棘手,但難度不大,根據我們的第一個問題設置約束,並與其他約束一起添加一個額外的約束,Trailing Space進行超級查看,Stroyboard會向您顯示錯誤,請放心。 現在為Swiftbar / objc文件中的兩個約束創建Progressbar尾隨空間的出口,並在運行時根據您的邏輯激活一個約束並停用另一個約束。 以及顯示/隱藏標簽。 像這樣

    NSLayoutConstraint.isActive = false; // or true. Here NSLayoutConstraint is your reference to constraint outlet.

添加一個水平的UIStackview並添加一個UIProgressView和一個UILabel。 將標簽文本對齊方式設置為居中。

在堆棧視圖中添加頂部,底部,前導,尾隨約束。 不要在堆棧視圖中添加高度限制。 向標簽添加高度限制。

將stackview配置更改為

在此處輸入圖片說明

並通過更改stackview的軸並隱藏/顯示標簽來更改樣式,如下所示

@IBAction func style1(_ sender: Any) {
    stackView.axis = .horizontal
    stackView.alignment = .center
    label.isHidden = false
}
@IBAction func style2(_ sender: Any) {
    stackView.axis = .vertical
    stackView.alignment = .fill
    label.isHidden = false
}
@IBAction func style3(_ sender: Any) {
    stackView.axis = .horizontal
    stackView.alignment = .center
    label.isHidden = true
}

在此處輸入圖片說明

暫無
暫無

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

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