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

  • ABC News (Australia)

    ABC News (Au

    9 HAZİRAN 2008
  • magnum33563

    magnum33563

    8 NİSAN 2011
  • Warner Bros. UK

    Warner Bros.

    6 HAZİRAN 2008