问题标签 [layoutsubviews]

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.

0 投票
0 回答
293 浏览

ios - 当 iPhone 一次倒置时,layoutsubviews 没有被调用

我正在使用相机(AVCapture 输入/输出)制作一个功能。现在我遇到了如下问题。

当 iPhone 一次倒置(180 度)时,不会调用“layoutSubviews”。
(如果分两步旋转 90 度和 90 度,则每次旋转都会调用“layoutSubviews”)

我正在使用 AVCaptureVideoPreviewLayer 来显示相机输出。
为了旋转预览层,我编写了如下代码。

如果您知道的话,能否告诉我一个在 180 度旋转中一次调用“layoutSubviews”的好方法。

0 投票
2 回答
405 浏览

ios - UITableViewCell :重新加载数据调用时单元格缩小

我正在尝试制作一个聊天应用程序。我从笔尖填充聊天气泡。

但是每当我向数组中添加一条新消息并调用 reloadData 方法时,它上面的单元格就会缩小。

这是我的 UITableView cellForRowAtIndexPath 代码:

这是 heightForRowAtIndexPath 的代码

这里也是 SentMessageTableViewCell xib 实现的代码:

但是当我运行应用程序时,结果是这样的。

在此处输入图像描述

上面的单元格缩小到默认大小。

编辑:这是我的 xib。

在此处输入图像描述

在此先感谢您的帮助。

0 投票
1 回答
827 浏览

ios - 执行 -layoutSubviews 后仍需要自动布局。UICollectionView的-layoutSubviews的实现需要调用super

我使用UICollectionView默认值UICollectionViewFlowLayout。它适用于 iOS 8,但在 iOS 7.1 上我得到

由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“执行 -layoutSubviews 后仍需要自动布局。UICollectionView的-layoutSubviews的实现需要调用super

我发现使用 UITableViewCell 子类执行“-layoutSubviews 后仍需要自动布局”,但没有一个解决方案有效

另一个线索是我在 UICollectionView 中添加了一些视图,并为该视图设置了 AutoLayout

这就是我的自定义 UICollectionView

0 投票
0 回答
219 浏览

ios - UIDynamicAnimator with layoutSubviews laggy

我尝试实现侧边栏菜单。我已经用标准UIView动画完成了它,但现在我想给它添加一些感觉。我决定使用UIViewDynamics. 我注意到,在主视图框架更改后,有必要重新创建UIViewAnimator和所有行为。

我通常使用layoutSubviews视图的方法。但在那种情况下,我的控制器继承了UINavigationController它,我无法覆盖它的视图,所以我使用了控制器生命周期方法。

为避免意外结果,首先我删除方法中的所有动画师行为viewWillLayoutSubviews。之后,最后viewDidLayoutSubviews我创建了一个动画师和行为(重力、项目、推动、碰撞)。

效果很好,但是当layoutSubviews触发时,它会有些滞后(看起来像低 fps)。

一些代码:

希望您能提供帮助,并随时提出任何相关问题。谢谢。

应用程序在屏幕旋转时消耗 9-12 % cpu。

PS:我已经尝试将动画师和行为创建移动到单独的线程中,但是:

  1. 在后台线程中使用视图 - 坏主意
  2. 它只是没有帮助
0 投票
1 回答
35 浏览

ios - @IBDesignable 中的 var 值能否依赖于外部值,例如视图的框架?

我想在@IBDesignable 视图中绘制一个形状孔。为此,我需要视图的大小,它位于视图层次结构的上方。这个视图通过约束改变它的大小。

如何检索框架?可能这根本不可能,因为我们所依赖的视图是稍后绘制的?但它的帧大小可能会提前恢复?

形状在 layoutSubviews 中绘制:

0 投票
1 回答
136 浏览

objective-c - 具有自定义宽度的动态 UILabel 在使用 AutoLayout 在 UITableView 中滚动时不适用

我遇到了 AutoLayout 和 layoutSubviews 的问题

我正在使用 iOS9 SDK Beta

我的动态内容标签之一具有彩色背景,因此我需要为间距添加自定义宽度。

屏幕截图 1(第一次加载时看起来不错) 第一次加载看起来不错 屏幕截图 2(开始滚动时出现问题。自定义宽度有时不起作用。) 滚动时出现问题 这是我在自定义 UITableViewCell 中使用的代码块

我想我应该使用动态约束,但是如何?

任何形式的帮助都非常感谢。

谢谢。

0 投票
1 回答
273 浏览

objective-c - 为 UITableView 调整自定义单元格中的属性大小

我有UITableView一个自定义单元格及其相应的.xib。我的 CustomCell.h 有 3 个属性。我希望能够在不使用自动布局的情况下以编程方式指定这些属性的宽度。这三个属性是背景图像、标题视图和标题视图中的标题。我想将所有三个属性的 with 设置为与 cell.contentView 宽度相同。

我已经放置[cell setNeedsLayout]在我的cellForRowAtIndexPath但唯一更新的属性是CustomCellOne 中的ImageViewand titleView。标签的 with 不会更新。除了它不更新标签宽度之外,我对这个“解决方案”的一个问题是,当显示单元格时,我可以看到背景图像宽度正在更新。背景图像从 320 宽度开始并扩展到 375 宽度。我希望在layoutSubviews显示单元格之前执行。

我也尝试过放置[cell setNeedsLayout]在里面willDisplayCell,但它会产生与上述相同的行为。

我也尝试过CustomCellOne.m[self setNeedsLayout]中的awakeFromNib方法,但这也会产生与上述相同的结果。

此自定义单元格需要能够考虑不同 iPhone 尺寸的尺寸,并且 [ImageManager] 返回特定设备的适当背景图像。

如果我选择单元格,那么layoutSubviews它将按照我想要的方式更新。有没有办法以编程方式触发单元格的选择?这不是更好的解决方案,因为它是一种 hack,我相信有更好的方法,正确的方法来做我想做的事。

我将永远欠任何可以帮助我解决这个问题的人。我的代码如下。

我的自定义单元格 .h 文件

我的自定义单元 .m 文件

0 投票
2 回答
5316 浏览

ios - 使用 viewDidLayoutSubviews 时出现问题

我听说这viewDidLayoutSubviews是我们使用约束时更改布局的最佳位置。

所以我跳到viewDidLayoutSubviews

我在 SuperView 上UIViews创建了三个。SubViewed我没有提到框架计算的代码。

使用这块我正在添加这些圆圈。

现在当我运行我的代码时,viewDidLayoutSubviews我得到以下屏幕:

在此处输入图像描述

当我切换到时,viewWillLayoutSubviews我会在屏幕上看到这个:

在此处输入图像描述

为什么viewDidLayoutSubviews即使我正在创建三个圆圈,我也会得到额外的两个圆圈。

以及为什么 inviewWillLayout给出正确的输出。

0 投票
2 回答
58 浏览

ios - 如何获得真正的自定义单元格的宽度?

我在情节提要中有一个自定义单元格。viewController我已经为包含它的故事板设置了 iPhone 4.7 英寸tableView

因为我想在这个单元格内布置一些UIImageViewsscrollView所以我需要知道单元格的宽度。我试图在 中获得这个宽度layoutSubviews,如下所示:

它被多次调用,当我在 iPhone 5 上运行它时,前两次是不正确的(它是 375,这是它在情节提要上的样子,然后是 320,这是正确的大小)

无论如何,我如何获得单元格的实际宽度?

提前致谢。

0 投票
1 回答
617 浏览

swift2 - 为什么 layoutSubviews 调用了两次?

我有一个 UIView 子类并覆盖 layoutSubviews 方法。当我在 viewController 中调用这个子类并将其添加到控制器的视图中时,我发现“layoutSubviews”函数已被调用了两次。

CoverFlowView 是视图子类 UIView