0

有没有办法根据其上方的另一个子视图的宽度和高度来设置子视图框架的 x 和 y 值?换句话说,举个例子,假设一个 UIView 有两个子视图,一个 UILabel 和一个 UIImage,标签的内容将来可能会发生变化并占用更多空间(两三个“行”而不是一个) - 什么我是否必须根据该标签中使用的字符数使该图像显示得稍微低一些?是否有简单使用 UIWebView 的替代方法?

在此先感谢您的任何建议。

4

2 回答 2

0

视图不应该真正设置自己的框架 x 和 y,因为正如您所描述的,适当的值取决于各个视图不知道的上下文。

您希望layoutSubviews在包含视图中实现以适当地调整标签和图像视图的大小和位置。然后,当您检测到标签的大小已更改时,您将调用setNeedsLayout包含视图。这将告诉 UIKit 包含视图的子视图需要重新调整大小和定位,并且您的实现layoutSubviews将在适当的时间被调用。

于 2012-06-23T11:30:16.907 回答
0

您可以尝试使用 UITextView 来标记您的 UIImage。在 UITextView 委托 (UITextViewDelegate) 中有一个委托方法 - (void)textViewDidChange:(UITextView *)textView。这会在文本视图更改时触发,因此您可以检查文本视图中的内容大小,并在必要时移动图像。

您可以实现它来检查 textview.contentSize.height + y 坐标是否大于 UIImage y 坐标,如果是,则将 UIImage 移动到 y 坐标的新偏移量。与 textview.contentSize.width + X 坐标和 UIIMage x 坐标相同。

于 2012-06-03T11:33:07.650 回答