如何在UIScrollView中绘制自定义形状

时间:2014-03-03 08:54:17

标签: ios objective-c uiscrollview quartz-2d

您好我正在尝试使用UISCrollView

创建自己的时间线视图
  1. 我想创建年份视图(需要使用石英库绘制),其大小为1200,50。
  2. 示例代码为:

    - (void)drawYearScaleMain
    {
         CGContextRef context = UIGraphicsGetCurrentContext();
         CGContextSetRGBFillColor(context, 1.0, 0.6, 0.2, 0.8);
         CGContextMoveToPoint(context, self.bounds.origin.x, self.bounds.origin.y);
         CGContextAddLineToPoint(context, self.contentSize.width, self.bounds.origin.y);
         CGContextAddLineToPoint(context, self.contentSize.width, 50);
         CGContextAddLineToPoint(context, self.bounds.origin.x, 50);
         CGContextAddLineToPoint(context, self.bounds.origin.x, self.bounds.origin.y);
         CGContextFillPath(context);
     }
    
    1. 现在我想使用相同类型的绘图代码创建月视图:
    2. 示例代码:

      - (void)drawMonthScaleSub
      {
          CGContextRef context = UIGraphicsGetCurrentContext();
          CGContextSetRGBFillColor(context, 0.0, 0.6, 0.2, 0.8);
      
          CGFloat topLeftX = self.bounds.origin.x;
          CGFloat topLeftY = 50;
          CGFloat width = 98;
          CGFloat height = 30;
      
          for(int count = 0; count<12; count++)
          {
              CGRect frame = CGRectMake(topLeftX, topLeftY, width, height);
              CGContextFillRect(context, frame);
              topLeftX = topLeftX + 10 + width;
          }
      
      }
      

      但是如果我滚动我的滚动视图我在这个视图中绘制的内容是不滚动,如果我的代码中有任何错误,或者任何其他最佳方法来实现这一点。

      请建议我。

      提前致谢。

1 个答案:

答案 0 :(得分:0)

我认为你应该创建一个UIView的子类并重新实现DrawRect:方法。然后你应该把这个视图放在你的scrollView中。