草庐IT

viewdidlayoutsubviews

全部标签

ios - UIViewController 的 subview 最初在什么时候明确布局?

我的代码中有很多地方需要根据UIViewController中的View布局来执行操作。例如,我在nib中有一个View,然后我在代码中捕获它并用于为另一层创建mask,但我需要等到maskView及其subview具有正确的大小才能这样做。我发现,虽然很老套,但我可以通过创建一个计数器来实现这一点,该计数器在每次viewDidLayoutSubviews被调用时递增,并在第二次被调用时触发我希望执行的代码时间-由于某种原因,大多数View在第二次调用viewDidLayoutSubviews之前尚未正确布局。就像我说的,这看起来很老套,而且iOS更新很有可能破坏我的代码。有没有人有更

ios - 在 viewDidLayoutSubviews 中更改框架

当ViewController的View首次显示时,我想运行一个动画,其中ViewController中的所有元素都从屏幕底部外部滑动到它们的自然位置。为此,我在viewDidLayoutSubviews中执行了subview.frame.origin.y+=self.view.frame.size.height。我也尝试了viewWillAppear,但它根本不起作用。然后,我使用viewDidAppear中的subview.frame.origin.y-=self.view.frame.size.height将它们设置为自然位置。问题是viewDidLayoutSubviews在V

ios - viewDidLayoutSubviews 无限循环与 iOS 8

我有一个通用iOS项目,可以与Xcode5(iOS6和iOS7)完美运行。我为iPad和iPhone使用不同的Storyboard。当我使用Xcode6GM运行它时,它与iPhone完美配合,但不适用于iPad。调试了一下,发现UISplitViewController中的viewDidLayoutSubviews有问题。例如:-(void)viewDidLayoutSubviews{[superviewDidLayoutSubviews];NSLog(@"运行");//一些带有子Controller框架的配置}它一直在运行,没有停止。有人遇到同样的问题吗?请帮助:(谢谢!

ios - topLayoutGuide 在 vi​​ewWillAppear 之后应用

我有一个问题,UIViewController(来自XIB)中的topLayoutGuide.length在viewWillAppear之后设置,我不知道如何HooktopLayoutGuide.length的更改以初始设置TableView的contentOffset。在UINavigationController中模态呈现UIViewController的代码:letviewController=UIViewController(nibName:"ViewController",bundle:nil)letnavigationController=UINavigationContr

ios - ScrollView ios 8 Xcode 不滚动 - Swift

我是Swift的新手,在ios上进行开发,但我找不到使UIScrollView向下滚动并保持向下的方法。我一直在尝试大量的教程,但仍然一无所获。我的ScrollView元素中有一个ContentView元素。这个ContentView有我希望它滚动的所有框,但它不滚动。如果这有什么不同,它确实会反弹......任何人都可以向我发送正确的方向吗? 最佳答案 尝试在viewDidLayoutSubviews中设置contentSizeoverridefuncviewDidLayoutSubviews(){super.viewDidLay

ios - 如何从 NSLayoutConstraints 获取 CGFloat 值?

我在屏幕上工作,我想让这个个人资料View循环显示。但是我没有从imageView.frame.height获取高度或宽度以在layer.cornerRadius中使用它。请帮我。谢谢。这里是引用代码。privatefuncaddImageView(){topView.addSubview(profilePicView)NSLayoutConstraint.activate([profilePicView.centerXAnchor.constraint(equalTo:topView.centerXAnchor),profilePicView.widthAnchor.constrai

swift - UITextView 文本从中间而不是顶部开始

我遇到了和其他人一样的问题,并且已经在论坛中发布了。我的texview中的文本从中间开始,而不是从顶部开始。我已经尝试了其他帖子中提供的一些代码,但结果相同。这些是我到目前为止使用的示例。self.maintext.scrollRangeToVisible(NSMakeRange(0,0))self.maintext.contentInset=UIEdgeInsetsMake(2.0,1.0,0,0.0);self.automaticallyAdjustsScrollViewInsets=false我一次又一次地尝试了所有这些。我得到的唯一结果是我的文本比没有代码时开始的位置高一点。为

ios - safeAreaInsets 在 vi​​ewDidLoad 中返回了错误的值,哪里是获取它的最佳位置?

当我尝试在我的ViewController中检索viewDidLoad中的safeAreaInsets时,它在iPhoneX上返回(0,0,0,0),我知道这是错误的。文档说,如果View不是层次结构的一部分或View不可见,就会发生这种情况。所以我的问题是,检索safeAreaInsets然后使用这些插图布局我的subview的最佳位置在哪里? 最佳答案 您需要使用viewDidLayoutSubviews而不是viewDidLoad。overridefuncviewDidLayoutSubviews(){super.viewDi

ios - safeAreaInsets 在 vi​​ewDidLoad 中返回了错误的值,哪里是获取它的最佳位置?

当我尝试在我的ViewController中检索viewDidLoad中的safeAreaInsets时,它在iPhoneX上返回(0,0,0,0),我知道这是错误的。文档说,如果View不是层次结构的一部分或View不可见,就会发生这种情况。所以我的问题是,检索safeAreaInsets然后使用这些插图布局我的subview的最佳位置在哪里? 最佳答案 您需要使用viewDidLayoutSubviews而不是viewDidLoad。overridefuncviewDidLayoutSubviews(){super.viewDi

ios - viewDidLayoutSubviews 陷入空白方法的无限循环

我有一个在UIStoryboard中使用UITableView设置的ViewController。UITableView在所有四个边上都被限制在Controller的SafeArea中。这个问题好像以前有人问过,但是每次发现问题都是因为viewDidLayoutSubviews发生了变化,导致出现了循环。我有一个空白viewDidLayoutSubviews和基本UITableViewCells(无Nib)的实现。然而在iOS11、Xcode9.2中,向上轻弹tableview会导致viewDidLayoutSubviews被无限循环调用。这是我的实现:-(void)viewDidLa