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

  • circuschina

    circuschina

    16 Mart 2007
  • echifitness

    echifitness

    9 Kasım 2008
  • Trulia

    Trulia

    29 Kasım 2006