SORU
23 HAZİRAN 2009, Salı


Nasıl şeffaflık ile yuvarlatılmış dörtgen bir görünüm iphone yapılır?

Uygulamalar çok zaman alıcı bir işlem çalışırken yuvarlak köşeler ve bir activityİndicator ile şeffaf bir görünüm açılır.

Bunu nasıl yuvarlama ve yapmak mümkün sadece Interface Builder böyle bir şey kullanmak istiyorum bir çok yerde olduğu gibi () kullanarak mı? Veya, yuvarlak bir dörtgen ya da gerilebilir görüntü ile bir imageview kullanmalıyım? Arka plan çizmek almam gerekiyor?

Şimdiye kadar, ben yönetilen bir temel Görünüm ile benzer şeffaflık ayarı alphaValue Arabirimi Builder ancak yok yuvarlak köşeler, ve aynı zamanda şeffaflık gibi uygulamak için tüm subviews (istemiyorum metin ve activityindicator şeffaf olmak, ancak olsa bile koyduğum alphaValue bu İB göründüğü için göz ardı).

CEVAP
23 HAZİRAN 2009, Salı


view.layer.cornerRadius = radius;

Zor yoldan (ilk iPhone SDK gerekiyordu) drawRect: yöntem ile UIView kendi alt sınıfını oluşturmak için:

 CGContextRef context = UIGraphicsGetCurrentContext();
 CGContextSetRGBFillColor(context, 0,0,0,0.75);

 CGContextMoveToPoint(context, rect.origin.x, rect.origin.y   radius);
 CGContextAddLineToPoint(context, rect.origin.x, rect.origin.y   rect.size.height - radius);
 CGContextAddArc(context, rect.origin.x   radius, rect.origin.y   rect.size.height - radius, 
                radius, M_PI, M_PI / 2, 1); //STS fixed
 CGContextAddLineToPoint(context, rect.origin.x   rect.size.width - radius, 
                        rect.origin.y   rect.size.height);
 CGContextAddArc(context, rect.origin.x   rect.size.width - radius, 
                rect.origin.y   rect.size.height - radius, radius, M_PI / 2, 0.0f, 1);
 CGContextAddLineToPoint(context, rect.origin.x   rect.size.width, rect.origin.y   radius);
 CGContextAddArc(context, rect.origin.x   rect.size.width - radius, rect.origin.y   radius, 
                radius, 0.0f, -M_PI / 2, 1);
 CGContextAddLineToPoint(context, rect.origin.x   radius, rect.origin.y);
 CGContextAddArc(context, rect.origin.x   radius, rect.origin.y   radius, radius, 
                -M_PI / 2, M_PI, 1);

 CGContextFillPath(context);

Not: rect bu kod alınır [self bounds] (ya da her neyse konuma istiyorsun, olmaz anlamı ile rect geçti drawRect: yöntem.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Austin Evans

    Austin Evans

    5 AĞUSTOS 2007
  • KoreanFrogMania님의 채널

    KoreanFrogMa

    18 Aralık 2011
  • Makeup Lover

    Makeup Lover

    12 HAZİRAN 2011