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

  • CareyHolzman

    CareyHolzman

    24 Ocak 2008
  • Jordie Jordan

    Jordie Jorda

    27 Ocak 2008
  • TopOfTheTech

    TopOfTheTech

    5 NİSAN 2010