簡體   English   中英

如何在 SwiftUI 中使用 SegmentedPickerStyle() 更改 Picker 的高度?

[英]How to change height of a Picker with SegmentedPickerStyle() in SwiftUI?

SwiftUI中的Picker Frame怎么改?

Picker(selection: .constant(1), label: Text("Picker")) {
    Text("Hello").tag(1)
    Text("World").tag(2)
}
.frame(height: 60)
.pickerStyle(SegmentedPickerStyle())

我們希望選擇器高度等於60 ,但事實並非如此。

沒有直接的方法來更改SegmentedPickerStyle選擇器的高度,但我們可以使用以下代碼對其進行縮放。

Picker(selection: .constant(1), label: Text("Picker")) {
    Text("Hello").tag(1)
    Text("World").tag(2)
}
.frame(height: 60)
.pickerStyle(SegmentedPickerStyle())
.scaledToFit()
.scaleEffect(CGSize(width: 1.5, height: 1.5))

我們可以通過修改后端UISegmentedControl的擁抱優先級來做到這一點,如下所示。 在此之后, .frame修飾符,就像問題代碼一樣,開始按預期工作。

用 Xcode 13.4 / iOS 15.5 測試

演示

extension UISegmentedControl {
    override open func didMoveToSuperview() {
        super.didMoveToSuperview()
        self.setContentHuggingPriority(.defaultLow, for: .vertical)  // << here !!
    }
}

暫無
暫無

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

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