UIScrollView 与 UIView (Swift)
Posted
技术标签:
【中文标题】UIScrollView 与 UIView (Swift)【英文标题】:UIScrollView with UIView (Swift) 【发布时间】:2014-12-11 02:44:30 【问题描述】:我已经实现了一个带有 UIView 的 UIScrollView,我在 viewDidLoad() 到设置为 UIViewControllers 视图的 UIScrollView 时添加了该 UIScrollView。当我这样做时,带有 setTranslatesAutoresizingMaskIntoConstraints(false) 的 UIView 的框架如何设置为 -101.0。这不会发生在另一个显示不同的视图上,而只会发生在这个设计相同的视图上,并使用来自 navigationController 的 pushViewController 显示。
约束是从 NIB/XIB 文件中设置的,我很困惑为什么会发生这种情况。
另外需要注意的是,发生这种情况时,无论我在哪里尝试更改 UIView 的框架,它都没有影响。
编辑: viewDidLoad() 的代码:
override func viewDidLoad()
// call the super implementation
super.viewDidLoad();
// load our scrollview from our nib file
customScrollView = CustomScrollView.loadFromNib();
// set the resizeing mask to fill screen
customScrollView!.autoresizingMask = UIViewAutoresizing.FlexibleWidth | UIViewAutoresizing.FlexibleHeight;
// load our uiview from our nib file
containerView = ContainerView.loadFromNib();
// we handle the constraint changes
containerView!.setTranslatesAutoresizingMaskIntoConstraints(false);
customScrollView!.addSubview(containerView!);
// intialize our refresh control
refreshControl = UIRefreshControl();
refreshControl!.tintColor = UIColor.whiteColor();
refreshControl!.addTarget(self, action: "onRefresh", forControlEvents: UIControlEvents.ValueChanged);
containerView!.addSubview(refreshControl!);
// add the view to our controller here
view = customScrollView!;
【问题讨论】:
你能分享你的 viewDidLoad 代码吗?我还会检查您的 .h 文件中是否存在您的第二个视图控制器类中缺少的任何实现。 我会在一秒钟内上传该代码,但请记住,这很快 我已经更新了帖子,视图确实加载了 您可能应该在标题或第一行中包含它是 Swift,我看到它已经是一个标签。这是来自类的代码不起作用还是? 是的,这是来自非工作类的代码,即使在不使用 pushViewController 时类似的实现也有效 【参考方案1】:答案最终是自定义表格视图。如果其他人遇到这个问题,我强烈建议放弃 UIScrollView,因为它让苹果彻底失望。文档很差,并且存在已知的技术问题。对于任何试图在课堂上做某事的人,还有关于课堂上一些问题的技术文档说明,请务必阅读这些。
【讨论】:
以上是关于UIScrollView 与 UIView (Swift)的主要内容,如果未能解决你的问题,请参考以下文章
3 倍缩放的 UIScrollView 与 UIView 叠加
将 UIViewController 与 UIView 一起使用 - (想改用 UIScrollView) - 如何进行切换
使用 AutoLayout 在 UIScrollView 中居中固定 UIView