Xamarin.ios 在垂直视图中创建水平分隔符

Xamarin.ios 在垂直视图中创建水平分隔符,xamarin.ios,uistackview,Xamarin.ios,Uistackview,我有一个垂直堆栈视图,其中包含许多水平堆栈视图。如何在水平堆栈视图之间创建1px分隔线?只需在水平堆栈视图的两个最中间控件之间添加一个UIView,该UIView的宽度为1-2px,高度与每个水平堆栈视图相同。假设没有顶部或底部间距,则会给人一种垂直线没有中断的印象,或者如果您不介意垂直线中的中断,则无需担心删除顶部或底部间距 或 您可以利用UIStackView可以获取子视图的事实,只需计算出中心x,y为0时,添加一个2px宽的UIView作为UIStackView的子视图 比如:

我有一个垂直堆栈视图,其中包含许多水平堆栈视图。如何在水平堆栈视图之间创建1px分隔线?

只需在水平堆栈视图的两个最中间控件之间添加一个UIView,该UIView的宽度为1-2px,高度与每个水平堆栈视图相同。假设没有顶部或底部间距,则会给人一种垂直线没有中断的印象,或者如果您不介意垂直线中的中断,则无需担心删除顶部或底部间距

您可以利用UIStackView可以获取子视图的事实,只需计算出中心x,y为0时,添加一个2px宽的UIView作为UIStackView的子视图

比如:

        UIStackView sv = new UIStackView();
        UIView ViewLine = new UIView();
        ViewLine.Frame = new CGRect(CentreX, 0 , 2f , heightofstackview );
        sv.AddSubview();

可以创建分隔符视图:

class SeparatorView: UIView {

    init() {
        super.init(frame: .zero)
        setUp()
    }

    override init(frame: CGRect) {
        super.init(frame: frame)
        setUp()
    }

    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    private func setUp() {
        backgroundColor = .gray
    }

    override var intrinsicContentSize: CGSize {
        return CGSize(width: UIView.noIntrinsicMetric, height:0.5)
    }
}
并将其添加到水平视图之间的StackView中:

stackView.addArrangedSubview(horizontalView)
stackView.addArrangedSubview(SeparatorView())

这将创建一条分隔视图的小灰线。

根据缺乏响应的情况判断,我认为这是不可能的。或者更好地将高度设置为
0.5
将其正确设置为1px
1/UIScreen.main.scale