【发布时间】:2011-11-02 12:16:04
【问题描述】:
我有一个自定义 UIView,它在 draw rect 方法中绘制图像。我的问题是 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];
【问题讨论】:
标签: iphone objective-c ios ipad