2017-03-03 61 views
0

如何更改UISegmented控件的高度。我在xcode 8中使用了Swift 3.0。Height屬性默認是禁用的。使用IB更改UISegmented Control的高度?

+0

你試過什麼? http://stackoverflow.com/questions/12027608/ios-change-the-height-of-uisegmentedcontrol –

+1

[iOS的可能重複:更改UISegmentedcontrol的高度](http://stackoverflow.com/questions/12027608/ios -change-the-height-of-uisegmentedcontrol) – kennytm

+0

我試着把自動佈局約束放在它上面,但文本然後上升,不停留在中間。 @UmairAfzal –

回答

3

我發現這一點:

https://stackoverflow.com/a/41889155/7652057

@IBDesignable class MySegmentedControl: UISegmentedControl { 

@IBInspectable var height: CGFloat = 29 { 
    didSet { 
     let centerSave = center 
     frame = CGRect(x: frame.minX, y: frame.minY, width: frame.width, height: height) 
     center = centerSave 
    } 
} 
} 

https://stackoverflow.com/a/37716960/7652057

一個從鏈接三個選項,

override func viewDidAppear(animated: Bool) { 
super.viewDidAppear(animated) 
let rect = CGRect(origin: segment.frame.origin, size: CGSize(width: segment.frame.size.width, height: 100)) 
segment.frame = rect 
} 
+1

感謝您的支持...... –

+1

歡迎您!現在我可以評論! :D – 2017-03-03 08:00:44

+1

好的,我會編輯它。 – 2017-03-03 09:32:50

-1

這很容易。您可以使用框架的高度以編程方式訪問它:

yourSegmentedControllOutlet.frame.size.height = yourHeight 
+0

是不是有辦法來形成IB。 –

0

好的,我試圖做很長時間,這裏是解決方案。 首先,在IB內部是可能的,但爲此我們需要有一大堆自動佈局約束。

我已經把這個Segmented控件放在一個UIVIew中,所有的邊都固定在它裏面。 然後我給了這個視圖所需的高度,它的工作。 另外..感謝所有的答案