iphone - UIButton.layer.cornerRadius 不存在?

标签 iphone objective-c cocoa properties uibutton

我正在实现一个功能最少的自定义 UIButton。 .h 文件:

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

我在 .m 文件的 (A) 行遇到编译错误:

- (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;
}

如果我注释掉行 (A),我会得到以下输出:

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 , CALayer 应该有一个 cornerRadius 属性。我正在使用 iPhone SDK 3.1,甚至添加了一个 #ifdef 来确认这一点。

有人可以告诉我我忽略了显而易见的地方吗?

谢谢

最佳答案

确保你

#import <QuartzCore/QuartzCore.h>
到您的 header 或实现文件中。

关于iphone - UIButton.layer.cornerRadius 不存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1541324/

相关文章:

ios - segue 不能与 swift 一起工作

objective-c - 计算两个正整数之间的差异的最简单方法是什么?

Cocoa 绑定(bind)在 NSTableView 中显示 NSDictionary 键

objective-c - iPad 3 shouldRasterize = YES 使 UILabel 文本被截断

objective-c - 在框架内使用类时 IB_DESIGNABLE 构建失败

iphone - HTML5 和移动网站开发

ios - 如何通过mac终端获取连接的iPhone IP地址

Cocoa:获取 NSStatusBar 项目的位置

iphone - 如何在ios中将FLAC文件转换为wav文件?

iphone - 将 Spotify 网址发布到 Facebook 不再有效