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

  • AllYourNewsByMe

    AllYourNewsB

    18 Temmuz 2011
  • My name is Festis and I'm free

    My name is F

    2 EKİM 2011
  • WOSU Public Media

    WOSU Public

    23 AĞUSTOS 2007