У меня есть пользовательский UIView, который рисует изображение в методе рисования прямоугольника. Моя проблема в том, что UIView хочет, чтобы я инициировал initWithFrame при выделении объекта. Рамка вида должна соответствовать размеру и ширине изображения. Проблема в том, что я не получаю размер и ширину изображения до тех пор, пока не создадим метод drawRect для создаваемого мной вида. В представлении drawRect изменение рамки UIView в соответствии с размерами изображения, похоже, не имеет никакого эффекта. Так что я хочу сделать что-то вроде этого:
MyCustomView *myCustomView = [[MyCustomView alloc] initWithFrame: CGrectMake(0,0,0,0)];
Затем внутри метода drawRect в MyCustomView я хочу каким-то образом изменить рамку вида так, чтобы она соответствовала размеру создаваемого изображения.
Как мне получить желаемый результат? Нет, создание изображения до того, как я начну свой пользовательский просмотр, и добавление размеров в 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];