分段控制子视图来自扩展

时间:2017-04-17 22:32:29

标签: ios swift uisegmentedcontrol

我正在尝试在扩展名下面添加一个子视图,因此当我向该子视图添加更多属性时,可以从应用程序中的其他UISegmentedControl重用它。

它出现在正确的位置,但由于某种原因,有时出现在某些部分上方,有时出现在下方。我错过了什么吗?

enter image description here

到目前为止,在我的扩展中,这就是我所拥有的:

import UIKit

extension UISegmentedControl {
    func addBackgroundView() {
        let backgroundView = UIView();
        backgroundView.frame = self.bounds;
        backgroundView.backgroundColor = UIColor.purple;
        self.insertSubview(backgroundView, belowSubview: self);
    }
}

然后,我从ViewController中的viewDidLoad方法调用扩展函数:

self.segmentedControlUnit.addBackgroundView();

2 个答案:

答案 0 :(得分:1)

我认为你不能这样做。这是我选择第二段时的UI层次结构, enter image description here 这是我选择第3段

时的UI层次结构

因此段位置会根据您选择的段而变化。 enter image description here

答案 1 :(得分:0)

尝试在索引0处插入self.insertSubview(backgroundView, at: 0) 以确保它位于所有子视图

之下
cv2.inpaint()