Попытка создать прямоугольник, заполненный синим объектом UIImage - PullRequest
2 голосов
/ 25 июля 2010

Я хочу создать изображение синего прямоугольника и увидеть его в моем представлении, но этот код не работает:

  CGRect imageRect = CGRectMake(50, 50, 64, 40);
  UIGraphicsBeginImageContext(imageRect.size);
  [[UIColor blueColor] set];
  UIRectFill(imageRect);
  UIImage *aImage = UIGraphicsGetImageFromCurrentImageContext();
  UIGraphicsEndImageContext();
  UIImageView *myImageView = [[UIImageView alloc] initWithImage:aImage];
  [self.view addSubview:myImageView]; 

Может кто-нибудь исправить это для меня?

Спасибо

Sagiftw

1 Ответ

4 голосов
/ 25 июля 2010

Ваш контекст составляет 64 балла на 40 баллов. Вы заполнили прямоугольник, начиная с 50 точек от начала координат в контексте высотой 40 пунктов. Это выводит его за границы, и все, что вы рисуете за пределами контекста, не будет отображаться.

Установите начало вашего прямоугольника на 0,0, что является источником контекста. Тогда ваш прямоугольник размером 64 × 40 будет полностью в границах контекста размером 64 × 40.

Если вы действительно хотите нарисовать прямоугольник на 50 точек ниже и справа от источника контекста, то вам нужно сделать размер контекста как минимум достаточно большим, чтобы удерживать это поле плюс размер прямоугольника. Если вы также хотите получить такое же количество полей для другого размера, тогда размер контекста должен быть равен размеру прямоугольника плюс 100 точек в ширину и 100 точек в высоту (50 точек с каждой стороны прямоугольника на каждой оси).

...