ios - 来自扩展的分段控制 subview

标签 ios swift uisegmentedcontrol

我正在尝试通过扩展在我的 UISegmentedControl 下面添加一个 subview ,这样当我向这个 subview 添加更多属性时,它可以从应用程序中的其他 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();

最佳答案

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

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

关于ios - 来自扩展的分段控制 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43460694/

相关文章:

ios - Xcode 链接框架错误?

ios - Swift UITableViewCell 重用搞乱了标签/应用程序计算错误

iOS 嵌套 UITableView 不必要地加载所有单元格

ios - Presented View Controller 状态栏颜色不一样,如何修改为默认值?

objective-c - UISegmentedControl alpha 属性无法正常工作

ios - UISegmentedControl 带有圆角和非比例段错误

ios - 如何在 ios 的 xmpp 框架中检查收到的消息是已读还是未读

iphone - 在 iPhone 中将 .mm 文件转换为 .m 文件

iOS 13 - UISegmentedControl - 如何更改 selectedSegment 的角半径?

ios - 为什么我可以在没有参数的情况下初始化 UIView,但它的文档没有空的初始化程序?