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

  • BaaaStuds's channel

    BaaaStuds's

    10 Mart 2009
  • How Things Are Made

    How Things A

    17 HAZİRAN 2008
  • incognitotraveler

    incognitotra

    27 Mayıs 2010