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

  • Hak5DarrensVlog

    Hak5DarrensV

    11 EYLÜL 2009
  • Leigh Momii

    Leigh Momii

    10 Mayıs 2006
  • SalGames2016

    SalGames2016

    17 Kasım 2012