Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在initWithCoder中设置UIImageView帧_Ios_Uiimageview_Storyboard_Initwithcoder - Fatal编程技术网

Ios 在initWithCoder中设置UIImageView帧

Ios 在initWithCoder中设置UIImageView帧,ios,uiimageview,storyboard,initwithcoder,Ios,Uiimageview,Storyboard,Initwithcoder,我试图在UICollectionCell的子类中设置UIImageView的帧大小,但它不起作用。我使用故事板 在代码中,除了最后一行关于imageView的内容外,所有内容都可以工作。 如果我把代码放在drawRect中,它可以正常工作 - (id)initWithCoder:(NSCoder *)decoder { if ((self = [super initWithCoder:decoder])) { self.backgroundColor = [UIColor colorWi

我试图在UICollectionCell的子类中设置UIImageView的帧大小,但它不起作用。我使用故事板

在代码中,除了最后一行关于imageView的内容外,所有内容都可以工作。 如果我把代码放在drawRect中,它可以正常工作

- (id)initWithCoder:(NSCoder *)decoder {
if ((self = [super initWithCoder:decoder]))
{
    self.backgroundColor = [UIColor colorWithWhite:0.85f alpha:1.0f];

    self.layer.borderColor = [UIColor lightGrayColor].CGColor;
    self.layer.borderWidth = 1.0f;

    self.layer.cornerRadius = 8.0f;
    self.layer.masksToBounds = NO;
    self.layer.shadowColor = [UIColor blackColor].CGColor;
    self.layer.shadowRadius = 3.0f;
    self.layer.shadowOffset = CGSizeMake(0.0f, 2.0f);
    self.layer.shadowOpacity = 0.5f;

    self.imageView.frame = CGRectMake(10, 10, 50, 50);
}

图像视图稍后是否被其他对象移动?尝试将代码移动到LayoutSubview中

添加此方法:

- (void) layoutSubviews
{
    [super layoutSubviews];

    self.imageView.frame = CGRectMake(10, 10, 50, 50);
}

这是因为您的imageView(我相信是和IBOutlet)尚未初始化,它仍然为零。请注意,您的一些变量/属性正在init的方法中初始化。设置断点,您将看到。尝试在其他地方设置imageView值,如drawRect(如您所建议的)或awakeFromNib

不,它在布局子视图中不起作用。以后不会移动视图。。。我通过在drawRect中调用该方法解决了这个问题(不是最优的,但它可以工作)