调整 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】:您在评论中提到您实际上是在绘制曲线。据我所知,您需要自己计算曲线的边界框。
根据边界框,更新UIView
的bounds
属性(如Durgaprasad suggested)。这也调整了底层 CALayer
的大小,这也为其底层的 Core Graphics 渲染上下文提供了更大的位图。
如果不了解您的曲线,除了linking to some very generic discussion on quadratic Beziers 之外,很难提供帮助。
您可能希望使用-drawRect:
的最小实现来更新您的问题,这将允许某人重现您的问题。
【讨论】:
以上是关于调整 UIView 的大小,以便我绘制的任何内容都可见 - Objective C的主要内容,如果未能解决你的问题,请参考以下文章
使用UIToolbar调整UIView的大小不会同时调整大小