SORU
30 Mayıs 2013, PERŞEMBE


nasıl bir çizgi çizin görünümü denetleyicisi Program aracılığıyla mı?

UIViewController var. Program aracılığıyla oluşturulan görüşleri bir çizgi çizmek istiyorum. Yeterince basit görünüyor, ama çalışan örnek kod bulamadım.

CEVAP
30 Mayıs 2013, PERŞEMBE


İki ortak teknikler vardır.

  1. CAShapeLayer kullanarak:

    • Oluşturmak UIBezierPath (koordinatları ne istersen değiştir):

      UIBezierPath *path = [UIBezierPath bezierPath];
      [path moveToPoint:CGPointMake(10.0, 10.0)];
      [path addLineToPoint:CGPointMake(100.0, 100.0)];
      
    • UIBezierPath: kullanan CAShapeLayer bir oluşturun

      CAShapeLayer *shapeLayer = [CAShapeLayer layer];
      shapeLayer.path = [path CGPath];
      shapeLayer.strokeColor = [[UIColor blueColor] CGColor];
      shapeLayer.lineWidth = 3.0;
      shapeLayer.fillColor = [[UIColor clearColor] CGColor];
      
    • Görüşün katman için CAShapeLayer: Bu ekleyin

      [self.view.layer addSublayer:shapeLayer];
      

    Güncellemelerinden önceki sürümlerinde, manuel olarak QuartzCore.framework to your project's "Link Binary with Libraries" eklemek <QuartzCore/QuartzCore.h> Başlığı almak zorunda kaldı .m dosya, ama bu artık gerekli değil ("eğer" ve "Çerçeveler Otomatik olarak" inşa ayarlarına döndü) Link. Modülleri Etkinleştirmek varsa

  2. Diğer yaklaşım UIView sınıfı drawRect yöntemi CoreGraphics çağrıları kullanın

    • UIView bir alt sınıf oluşturmak ve çizgi çizer drawRect: bir define

      - (void)drawRect:(CGRect)rect
      {
          CGContextRef context = UIGraphicsGetCurrentContext();
      
          CGContextSetStrokeColorWithColor(context, [[UIColor blueColor] CGColor]);
          CGContextSetLineWidth(context, 3.0);
          CGContextMoveToPoint(context, 10.0, 10.0);
          CGContextAddLineToPoint(context, 100.0, 100.0);
          CGContextDrawPath(context, kCGPathStroke);
      }
      
    • Sonra da bu UÇ/veya film şeridi görünümü için temel sınıf olarak sınıf görünüm kullanabilir veya görünümü denetleyicisi programlı olarak eklemek bir küme gibi olabilir:

      CustomView *view = [[CustomView alloc] initWithFrame:self.view.bounds];
      view.backgroundColor = [UIColor clearColor];
      
      [self.view addSubview:view];
      

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CodingMadeEasy

    CodingMadeEa

    25 EYLÜL 2010
  • Eric Enge

    Eric Enge

    2 Kasım 2009
  • TitaniumBackup

    TitaniumBack

    10 EYLÜL 2011