2009-10-09 44 views
16

Özel bir UIButton'u minimum işlevsellikle uyguluyorum. .h dosyası:UIButton.layer.cornerRadius mevcut değil mi?

#import <Foundation/Foundation.h> 
@interface CustomButton : UIButton { 
} 
@end 

ben .m dosyasında hattı (A) bir derleme hatasıyla karşılaşıyorsanız ediyorum: Çizgiyi (A) alıyorum açıklama, aşağıdaki

- (id)initWithCoder:(NSCoder *)coder { 
    if(self = [super initWithCoder:coder]) { 

     CALayer *layer = [self layer]; 
     NSLog(@"layer=%@",layer); 
     NSLog(@"delegate=%@",[layer delegate]); 

#ifdef __IPHONE_3_0 
     layer.cornerRadius = 4.0f; // (A) error: request for member 'cornerRadius' in something not a structure or union 
#endif 
    } 
    return self; 
} 

çıkışı:

2009-10-08 17:35:06.681 MyApp[2596:4e07] layer=<CALayer: 0x3cdf520> 
2009-10-08 17:35:06.683 MyApp[2596:4e07] delegate=<CustomButton: 0x3cdaff0; baseClass = UIButton; frame = (9 212; 255 55); opaque = NO; autoresize = RM+BM; layer = <CALayer: 0x3cdf520>> 

documentation göre, CALayer bir CornerRadius özelliği olmalıdır. IPhone SDK 3.1 kullanıyorum ve bunu onaylamak için bir #ifdef ekledim.

Birisi bana açık olanı gözden kaçırdığım yeri gösterebilir mi?

Teşekkür

cevap

48

emin olun üstbilgi veya uygulama dosyası içine

#import <QuartzCore/QuartzCore.h>
.

+0

siz "#import 'CustomButton.h' demek, ben .m dosyası başında. – tba

+1

öf. Hayır, üzgünüm, biçimlendirme şeyler berbat ki. #import

+0

Teşekkürler! – tba

2

bu deneyin,

#import <QuartzCore/QuartzCore.h> 

    Button.layer.cornerRadius = 15.0; 
    [Button.layer setMasksToBounds:YES]; 
+0

Bu soru doğru olarak cevaplandırıldı yıllar önce, cevabınız hiçbir şey eklemiyor – jrturton

+1

Sorunuz benim sorunumu çözdü, ama benim sorunum değildi. Onun sorusu .. Hala katkılarınız için çekilmek. :) –