使用 C# 在 iOS 上与 UIScrollView 相关的 UISwitch 的奇怪故障
Posted
技术标签:
【中文标题】使用 C# 在 iOS 上与 UIScrollView 相关的 UISwitch 的奇怪故障【英文标题】:Weird glitch of UISwitch related to the UIScrollView on iOS with C# 【发布时间】:2018-11-01 15:01:23 【问题描述】:我有 ViewContoller,它的视图层次结构如下(Cirrious.FluentLayout 库,但应该可以理解):
_scrollView = new UIScrollView()
ShowsVerticalScrollIndicator = false
;
View.Add(_scrollView);
_contentView = new UIView();
_scrollView.Add(_contentView);
View.AddConstraints(
_scrollView.Below(VueNavBar),
_scrollView.AtLeftOf(View),
_scrollView.AtRightOf(View),
_scrollView.AtBottomOf(View)
);
_scrollView.AddConstraints(_contentView.SameFrameAs(_scrollView));
然后我按如下方式添加 UISwitch:
var switch = new UISwitch();
_contentView.Add(switch);
设置约束后(我尝试了很多组约束,很多肯定没有歧义)ios给我呈现如下:
真的很奇怪,但是切换后会变成:
也许有人知道为什么会发生这种情况?
P.S.:我已经设法通过以相同方式添加滚动视图来破坏其他页面上的开关,但是它们以不同的方式被破坏(其他类型的故障)。
【问题讨论】:
【参考方案1】:我试了下面的代码,开关显示正常。
您无需定义UISwitch
的宽度和高度。
public override void ViewDidLoad ()
base.ViewDidLoad ();
// Perform any additional setup after loading the view, typically from a nib.
_scrollView = new UIScrollView()
ShowsVerticalScrollIndicator = false,
BackgroundColor = UIColor.Blue
;
View.Add(_scrollView);
this.View.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
View.AddConstraints(
_scrollView.AtTopOf(View,20),
_scrollView.AtLeftOf(View,20),
_scrollView.AtRightOf(View, 20),
_scrollView.AtBottomOf(View, 20)
);
_contentView = new UIView();
_contentView.BackgroundColor = UIColor.Orange;
_scrollView.Add(_contentView);
_scrollView.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
_scrollView.AddConstraints(
_contentView.WithSameTop(_scrollView),
_contentView.WithSameLeft(_scrollView),
_contentView.WithSameWidth(_scrollView),
_contentView.WithSameHeight(_scrollView)
);
var switch1 = new UISwitch();
_contentView.Add(switch1);
_contentView.SubviewsDoNotTranslateAutoresizingMaskIntoConstraints();
_contentView.AddConstraints(
switch1.AtTopOf(_contentView, 80),
switch1.AtLeftOf(_contentView, 20)
);
【讨论】:
感谢回答,但我没有设置UISwitch的宽高。以上是关于使用 C# 在 iOS 上与 UIScrollView 相关的 UISwitch 的奇怪故障的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Analytics 在 iOS 14.5 上与 ATT 的合规性
在 iOS 6 及更高版本上与 YouTube 和 Twitter 共享视频文件