ios - UIImageView 子类化

标签 ios objective-c uiimageview

我想通过子类化 UIImageView 类来创建自定义类 RoundedImageView。

为了让它变圆,我使用了下面的代码:

    self.layer.cornerRadius = self.frame.size.width/2;
    self.layer.masksToBounds = YES;

我应该把这段代码放在哪里?在初始化程序中?或者可能在 layoutSubviews 中?我知道在初始化器中从 self 访问属性不是一个好主意(因为 self 可能没有完全初始化),这就是为什么我很困惑,我不确定把这段代码放在哪里。

最佳答案

UIView(或从 UIView 派生的任何类)的规范初始化如下所示

- (void)setup
{
    // do any initialization here
}

- (void)awakeFromNib
{
    [self setup];
}

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];

    if (self) 
        [self setup];

    return self;
}

这适用于 Storyboard创建的 View 和以编程方式创建的 View 。来源:the CS193P videos .

关于ios - UIImageView 子类化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24150710/

相关文章:

iphone - dataWithContentsOfURL 不检索数据

iPhone Objective-C - wait_fences : failed to receive reply: 10004003

iphone - UIImageView 在 CAKeyframeAnimation 之后消失

ios - 核心数据 : error: Failed to call designated initializer on NSManagedObject class 'SCTrack'

objective-c - WebView 本地 CSS

iOS:无法在 iCarousel 中设置图像

ios - 点击手势在 imageView 中不起作用,但它在另一个 View 中起作用

android - 后台应用程序会持续接收蓝牙数据包多长时间?

ios - 如何通过加载html字符串数据获知textView内容高度?

ios - 是否可以更改所有 View Controller 的状态栏颜色?