【问题标题】:How to divide UIView N number of equal UIView如何划分UIView N个相等的UIView
【发布时间】:2014-03-31 12:44:38
【问题描述】:

我是 iOS 新手,我想根据UIView 的中心点将UIView 框架划分为N 等于大小的UIView 框架。

例如我为圆圈做的: http://s14.postimg.org/6w4xfa80h/i_OS_Simulator_Screen_shot_Mar_31_2014_7_03_03_P.png

我必须这样做。但是视图角的形状不是圆弧,应该和视图矩形框一样。

我该如何实现。

【问题讨论】:

  • 你的问题是……?
  • 你已经设定了一个目标。你还没有问过问题。甚至你的目标也是模棱两可的。你说你想把一个矩形分成N个正方形。然后你说你想把一个UIView 分成一组大小相等的视图。 然后你提到了饼片,这是一个完全不同的问题。 然后你提到了观点的中心点,但没有解释这与问题有什么关系。最后,您发布了一篇文章的链接,该文章介绍了通过折叠将一张纸分成相等数量的部分。简而言之,您的帖子完全是一团糟。
  • 我认为为此使用了 UICollectionView。

标签: ios objective-c uiview core-graphics


【解决方案1】:

如果我理解正确,您正在尝试创建如下所示的视图:

请注意,这些区域不是矩形,因此它们不能是视图框架。它们是可以通过 CGPath 函数创建的形状。 创建这些行的一种简单方法是使用CGPathAddLineToPoint。始终添加一条从视图中心开始向下延伸到 y 坐标的线。您所要做的就是更改CGAffineTransform *m 参数,方法是使用angle = 2*pi/n 重复调用CGAffineTransformRotate,其中n 是相等部分的数量。

假设你有一个CGAffineTransform t 和前面提到的角度,你会循环 n 次:

CGPathRef path = CGPathCreateMutable(); CGPathAddLineToPoint(path, CGAffineTransformRotate(t,angle), view.frame.center.x, view.frame.center.y + view.frame.size.y); // Now do something with that line....

【讨论】:

  • #Rikkles 是正确的,但在中心我有一个圆圈,我在图片中提到过。在那种情况下,我的 CGPathRef 的代码是什么......
  • CGContextClip 与包含内圆的图形上下文一起使用。然后它会自动剪切包含线条的路径。
  • #Rikkles 实际上每个视图作为单独的视图我需要相同的形状。为此,我该如何写我的 CGPath 点。就像上图一样,每个饼图都是单独的视图,我为该形状重写了 layoutSubview 方法。
猜你喜欢
  • 1970-01-01
  • 2014-05-14
  • 2011-03-22
  • 2011-08-21
  • 1970-01-01
  • 2012-01-25
  • 2017-10-30
  • 1970-01-01
  • 2012-12-12
相关资源
最近更新 更多