问题标签 [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 投票
1 回答
1841 浏览

iphone - 具有自定义 layoutSubviews 的 UIScrollView 不再动画

我有一个 UIScrollView 的子类,用于图像幻灯片,具有无限滚动和圆形幻灯片。

我曾经以这种方式为过渡设置动画:(因为我希望过渡更慢)

它工作得很好。

然后我观看了 WWDC 2011 的讲座“高级滚动技术”,他们建议通过覆盖来实现无限滚动layoutSubviews

所以我改变了我的实现并覆盖layoutSubviews

一旦我这样做了,过渡动画就停止了工作。

如果我注释掉我的自定义 layoutSubviews - 它又可以工作了!

为什么??

在覆盖 layoutSubviews 时,我可以做些什么来制作自己的滚动动画?

谢谢!

0 投票
0 回答
393 浏览

mpmovieplayercontroller - MPMoviePlayerController 在全屏模式下不旋转视图

我目前正在为 iPad iOS 5.1 开发 masterDetail 应用程序。

当在 masterViewController 中点击一行时,会在详细视图控制器中播放视频。视频播放良好,在全屏模式下可以旋转。

但是,当视频处于全屏模式时旋转设备时,它不会旋转底层视图。因此,当视频退出全屏时,底层视图会在瞬间闪烁到之前的方向,然后再切换到当前方向。

我尝试捕获 MPMoviePlayerWillExitFullScreen 通知,然后调用 shouldAutoRotateToInterfaceOrientation .....但这没有帮助。

当我进入全屏模式时,我也会收到以下错误:

“拆分视图控制器应在布局之前设置其子级!”。但是这个错误只发生在模拟器中。

任何人都可以对这个问题有所了解吗?

0 投票
1 回答
506 浏览

iphone - 可以实现 UIScrollView 与可缩放和方面适合的内容?

我想创建一个滚动视图,其工作方式与您在照片应用中平移/缩放图像完全一样:

- 横向图像适合纵向屏幕,

- 您可以放大图像,

- 如果您旋转设备放大(横向),图像仍然在中间,

- 当您缩小时,图像仍然适合新的横向屏幕(拉伸全屏)。

因此,我需要同时满足宽高比和缩放功能。

我已经实现了一个解决方案,我在 layoutSubviews 中“手动”布局 scrollView 的内容以使外观适合,但这会干扰缩放行为。

有没有一种简洁的 UIKit 方法来处理这个问题?或者我必须在这里创建自己的实现?

0 投票
0 回答
481 浏览

dynamic - UILabel 在 LayoutSubview 中错误地调整大小

我有一个 UITableViewCell 的子类来显示自定义单元格。此类与 Storyboard 集成,因此属性的框架已在 IB 中设置。

我的目标是根据标签包含的文本动态设置标签的宽度,并使用 setNeedsLayout 重新绘制标签。

自定义单元格的 .m 文件的一部分:

我的 NSLog 给了我正确的输出:

然而,这就是我在视觉上得到的(我无法上传图片,所以我会尽力描述它):标签的尺寸非常小(宽度和高度),并且来源似乎是随机的。有时 lastName 将位于单元格的底部,而名字则位于中间。

我究竟做错了什么?我已经做了好几个小时了。

感谢您的帮助。

0 投票
4 回答
8371 浏览

objective-c - 为什么不调用 -layoutSubviews ?

我正在尝试为某些子视图创建自定义布局。我的文件是 a ViewController,所以我必须将其视图称为self.view. 子视图是 的子视图self.view

当我[self layoutSubviews];显式调用 in 时viewDidLoad,它将-layoutSubviews毫无问题地执行代码。

但是,我读过我不应该-layoutSubviews显式调用,或者调用它,self因为那是一个UIViewController. 我尝试-setNeedsLayout通过这样调用它来实现:[self.view setNeedsLayout]in viewDidLoad,并取出显式调用-layoutSubviews但保留其声明。但这似乎不起作用。

我被链接到一篇关于何时调用 layoutSubviews 的文章,并且似乎应该在我添加子视图时调用它,但这似乎并没有发生在这里。

如果我想要安全,并按照它在类参考及其方法中建议的方式做事UIView,我应该如何才能使用这两种方法?

0 投票
1 回答
3304 浏览

ios - 回收时不会重新布局自定义 iOS UITableViewCells

我有一个 UITableView,它显示来自各种社交网络的更新帖子。我有自定义 UITableViewCell 子类,里面有一个自定义 UIView,它负责绘制所有标签和图像,类似于 Apple 在这里描述的方式:http: //developer.apple.com/library/ios/#documentation/UserExperience/概念/TableView_iPhone/TableViewCells/TableViewCells.html#//apple_ref/doc/uid/TP40007451-CH7-SW18

在这个视图的 -layoutSubviews 调用中,我找到了各种标签所需的大小,并相应地设置了它们的框架。然而,在滚动一点之后,很明显,当一个单元格被回收时,-layoutSubviews 没有被调用,导致一些单元格的标签框没有设置足够大来显示它们的内容。当将我的数据对象通过单元格传递到自定义视图时,我调用 [self setNeedsDisplay],我相信这会导致单元格调用 -layoutSubviews。

我如何才能最好地确保标签的大小适合发送给他们的内容?

0 投票
1 回答
1386 浏览

ios6 - iOS6 layoutIfNeeded doesn't trigger layoutSubViews for UITableViewCell

In my app I have a table view with customised table view cells. In iOS5 i use the following snippet of code to get the correct height for my customised cells. In iOS6 after doing a [tableView reloadData] the [cell layoutIfNeeded] will not trigger the cells layoutSubViews method. And because of that the cells heights are wrongly calculated. Any good suggestions to why this is? Or maybe alternative ways of doing it?

0 投票
1 回答
1337 浏览

ios - Auto position subviews of UINavigationBar's titleView

I have a custom titleView for displaying Navigation title and sub-title. The title font is bigger than sub-title. Here's what I have now:

I want to have the ability to remove subTitleView at some point in my code, but that makes the titleView look out of center (vertically).

So my question is, how would you implement auto-positioning here? should I use layoutSubviews ? if so, what would be the proper way to override it?

I thought that when the container view has an autoresizingMask it will adjust it's size according to the "total" size of it's subviews (?).

Thanks

0 投票
1 回答
296 浏览

ipad - glGetRenderbufferParameterivOES 上的非零大小错误

这类似于 stackoverflow 上的另一个问题,但存在大小,0,0在这里我弄错了奇怪的非零大小。所以看起来这可能是一个不同的问题。

当我在 layoutSubviews 中配置帧缓冲区时会出现问题。

当这个调用返回我得到的尺寸是1139backingHeight)x 841backingWidth)。

这些尺寸看起来很奇怪,因为它们不符合我所知道的任何标准尺寸。

ipad 面向纵向模式。堆栈以layoutSubviews. 我阅读了一些较早的线程并决定将调用推迟到layoutSubviews可能已经完成稳定视图的稍后时间。但即使我将帧缓冲区创建延迟到显示链接回调,值也没有改善,仍然是1139(h) x 841(w)。

此外,如果我在调试器中检查 UIScreen 上的边界大小,mainScreen我会得到 1024x768。

所以不知何故,这些界限似乎并没有延续到 OpenGL EAGLayer 的backingWidthbackingHeight。仍然会创建帧缓冲区,但我的内容基于错误(更大)的大小并离开了屏幕。

我在 xcode 4.5.2 上,而 ipad 在 iOS 5.1.1 上。我将继续追踪这一点,但没有太多可做的。

0 投票
1 回答
2102 浏览

iphone - 在 layoutSubviews 中调用 setNeedsDisplay?

考虑一个具有自定义背景的视图,该视图以drawRect:. 如果视图改变大小,则需要重新绘制背景。

这是一个坏主意吗?

如果是,考虑到我无法控制谁更改视图的大小,有什么更好的选择?