我有抽獎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