问题标签 [viewdidlayoutsubviews]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ios - UIViewController viewDidLayoutSubviews
我很难弄清楚为什么 Erica Sadun 在她的食谱示例 Ch07-11 中执行以下操作(在 viewDidLayoutSubviews 中调用 viewDidAppear)。也许这两种方法应该调用另一种方法?
见:https ://github.com/erica/iOS-5-Cookbook/tree/master/C07
知道为什么吗?
ios - 如何在 viewDidLayoutSubviews 中获得正确的视图高度?
在上面,无论设备处于什么方向,始终为 1024。即使旋转设备也会导致view.height
被调用,它仍然会输出 1024。viewDidLayoutSubviews
然而,视图渲染得很好。我到底错过了什么?
ios7 - 如何让 canDisplayBannerAds 产生 viewDidLayoutSubview 回调?
在我的代码中,当我canDisplayBannerAds=YES
在视图控制器上进行设置时,我会viewDidLayoutSubviews
在广告消失时收到回调,但在广告出现时不会收到回调。我猜这是因为self.originalContentView
当您设置canDisplayBannerAds
为YES时,Apple 将视图控制器的原始 self.view 移动到了。
我的问题是,对此有什么合理的解决方法?
ios - UIView/CALayer:Transform触发superview中的layoutSubviews
当更改 UIView 的某些属性时,它会layoutSubviews
在superview中触发。我在文档中找不到任何关于此的陈述。
这些属性在 superview 和 self 中触发布局
- 框架
- 界限
这些属性仅在超级视图中触发布局
- 转换
- 层变换
这些属性仅在 self 中触发布局
- 没有任何
这些属性不会触发任何布局
- 中央
- layer.anchorPoint
- 层位
- α
我发现 transform 会触发布局而 position 和 anchorPoint 不会,这很令人困惑。
示例代码:https ://github.com/hfossli/LayoutSubviewsInconsistency
我想知道:
- 为什么我会看到这种行为
- 如果这真的是不一致的,或者我误解了一些核心概念
- 每次我更改转换时如何避免超级视图到 layoutSubviews
我在文档和头文件中找不到任何关于此的内容。当使用 UIDynamics 或类似的时候,这个问题很严重。
ios - Xcode 6 beta 和可调整大小的 Iphone:如何获取当前的屏幕尺寸
我尝试使我的视图完全动态化,以便视图可以适合任何屏幕尺寸。此刻我得到屏幕宽度和高度进行计算,如下所示:
问题是“Resizable Iphone”模拟器总是给我 768 的宽度和 1024 的高度(如 iPad)。当我更改模拟器底部的宽度和高度值时,这并不重要……有什么新功能可以用来进行更好的测试吗?
编辑:
我仍然不确定如何准确地处理这个......目前我在“viewDidLayoutSubviews”中计算我的子视图的大小,因为这是显示“可调整大小的 Iphone 模拟器”的正确宽度和高度的唯一方法,问题是当我在这个方法中计算我的所有东西时,每次滚动或触摸 UI 时都会调用它,所以它可能会被调用数百次......当我尝试计算我的视图时“ViewDidAppear”为时已晚,重新计算后看起来真的很奇怪......
xcode - Xcode - viewDidLayoutSubviews
我在 viewController 中有一个视图,我想在左侧的 viewController 之外启动较小的视图,并在我按下按钮时将其动画到中心。所以我做了这样的:
它工作得很好!问题是我在那个较小的视图中有一个文本视图,每次我开始编辑它时它都会跳到它所在的主视图控制器之外,我必须再次按下按钮才能把它带进去. 如何解决这个问题?
PS:当我开始像这样编辑文本视图时,我尝试将其定位到中心:
但它不起作用。并且该方法正确连接到textView(委托)
PS2:我的 viewController 中也有 imagePickerController。
objective-c - viewdidload 中的帧大小不正确,viewdidappear
使用iOS8。视图的帧大小在和UIViewController's
中不正确。我可以从中获取正确的帧大小并执行视图更新(我需要使布局无效),但是处理旋转变得毫无意义,并且这两种方法将其淘汰。viewDidLoad
viewDidAppear
viewDidLayoutSubviews
viewWillTransitionToSize:(CGSize)size withTransitionCoordinator:(id<UIViewControllerTransitionCoordinator>)coordinator
理想情况下willTransitionToSize
会被调用而不是didLayoutSubviews
,但不能同时调用,因为我不知道我是否真的需要使布局无效并执行无意义的计算、布局等。
我想避免使用与旋转和帧大小更改有关的各种魔术标志。
在发生任何这种情况之前,有没有办法获得视图控制器视图的“真实”大小?
编辑
这是一些示例代码:
ios - 为什么更改 UILabel 文本会触发 viewDidLayoutSubviews 事件?
viewDidLayoutSubviews
我的 ViewController 中触发了很多事件。最终我缩小到触发事件的单行代码:
它UILabel
在 ViewController 的一个子视图中添加self.view
。为什么改变a的文字UILabel
会引起边界变化?在viewDidLayoutSubviews
文档中:
当视图控制器视图的边界发生变化时,视图会调整其子视图的位置,然后系统调用此方法。
ps 我确信 debugLabel 字体大小足够小以适合其框架。
ios - viewDidLayoutSubviews 中应用程序终止的内存错误
我setBackgroundImage
在viewDidLayoutSubviews
. viewDidLayoutSubviews
它无限地呼唤。因此,随着应用程序的终止,内存会增加。我究竟做错了什么?它只发生在 iPhone 5s 中,相同的代码在 iPad Air 和 iPhone 4s 中运行良好。
ios - UICollectionView 不尊重布局
我想在旋转后更改我的集合视图布局以更改单元格大小。在模拟器中效果很好。在 iPhone 6 上没有。
代码如下: