调整 UIView 的大小,以便我绘制的任何内容都可见 - Objective C

Posted

技术标签:

【中文标题】调整 UIView 的大小,以便我绘制的任何内容都可见 - Objective C【英文标题】:Resize UIView so that whatever I draw is visible - ObjectiveC 【发布时间】:2013-05-28 10:03:12 【问题描述】:

我有一个UIView。我正在以编程方式在UIView 内画一条线。但是当线超出UIView 时,线的部分出去,是不可见的。如何调整UIView 的大小,以便在drawRect 方法中绘制的任何内容都可见?

【问题讨论】:

【参考方案1】:

您可以更改视图框架。如果您的线是水平的,则为视图提供宽度,否则增加视图的高度。

  view.frame = CGRectMake(view.frame.origine.x, view.frame.origine.y,view.frame.size.width,lengthOfLine ); 

【讨论】:

我以编程方式绘制的实际上是一条曲线。曲线的中间部分是流出的。 然后使用一些数学公式计算高度或宽度 我想知道是否有预定义的方法可以做到这一点。那就是我来这里。但感谢您尝试提供帮助。真的很感激。【参考方案2】:

如果你绘制的曲线是一个子视图,那么你可以使用sizeToFit方法。这将使视图的框架包围曲线(以及所有子视图,就此而言)。然后您可以重新定位和缩放视图的框架以使其适合窗口。

【讨论】:

【参考方案3】:

您在评论中提到您实际上是在绘制曲线。据我所知,您需要自己计算曲线的边界框。

根据边界框,更新UIViewbounds 属性(如Durgaprasad suggested)。这也调整了底层 CALayer 的大小,这也为其底层的 Core Graphics 渲染上下文提供了更大的位图。

如果不了解您的曲线,除了linking to some very generic discussion on quadratic Beziers 之外,很难提供帮助。

您可能希望使用-drawRect: 的最小实现来更新您的问题,这将允许某人重现您的问题。

【讨论】:

以上是关于调整 UIView 的大小,以便我绘制的任何内容都可见 - Objective C的主要内容,如果未能解决你的问题,请参考以下文章

使用UIToolbar调整UIView的大小不会同时调整大小

根据内容大小设置 UIView 的大小

UIView 调整内容大小

iOS UIView drawRect 调整大小动画

在 UIScrollView 中调整内容 UIView 的大小,有没有一种好方法可以做到这一点而无需进行任何计算?

使用自动布局调整 UIView 大小并更新内容