我有抽奖RECT方法绘制图像的自定义的UIView。我的问题是当我分配对象时,UIView想要我initWithFrame。视图的框架需要与图像大小和宽度相同。问题是,我没有得到该图像的大小和宽度,直到我创建的视图的drawRect方法。在drawRect视图中,将UIView的框架更改为图像尺寸似乎没有效果。因此,我想要做的是这样的:自定义用户界面视图更改帧大小
MyCustomView *myCustomView = [[MyCustomView alloc] initWithFrame: CGrectMake(0,0,0,0)];
然后MyCustomView的drawRect方法内我想以某种方式改变视图的框架是我创建的图像的帧大小。
我如何得到我想要的结果?不,在我启动我的自定义视图并将大小尺寸放入initWithFrame之前创建图像不是一个选项。
这是我当前的代码视图的drawRect方法
UIImage *image = [UIImage imageNamed:[NSString stringWithFormat:@"%@",self.imgName]];
CGSize imgSize = [image size];
CGRect newrect = CGRectMake(self.frame.origin.x, self.frame.origin.y, imgSize.width, imgSize.height);
self.frame = newrect; //This does nothing!!
CGRect imgRect = CGRectMake(0, 0, imgSize.width, imgSize.height);
[image drawInRect:imgRect];
你说得对。通常我在将视图插入到另一个视图或使用动画之前更改了框架,并且在这两种情况下都会自动重新绘制视图,所以我忘记了我必须调用setNeedsDisplay。 – Sulthan