Я не могу найти ответ на этот вопрос.
Я хотел бы знать, как сделать так, чтобы размер изображения в калеере был меньше размера грани калибра.
У меня есть несколько пешек в игре для iPad, каждая из которых является CALayer, и я могу изменить их размер просто с помощью contentsGravity = kCAGravityResizeAspect. Размер изображения составляет 128x128 внутри слоя CALayer 30x30, поэтому размер изображения автоматически изменяется до 30x30, и благодаря тому, что он является рамкой, соотношение сторон сохраняется и работает.
Здесь я устанавливаю границы CALayer пропорционально размеру суперпредставления, поэтому пешки всегда представляют одинаковый относительный размер для вида. Этот находится внутри моего подкласса класса спрайта calayer:
-(void) setSpriteScaleToDice {
CGFloat newSize = [self superlayer].bounds.size.width * 0.066666667f;
self.bounds=CGRectMake(0.0f, 0.0f, newSize, newSize);
self.contentsGravity = kCAGravityResizeAspect;
}
Обратите внимание, что в моем случае границы CALayer получают максимум 30x30, что мало для прикосновения. Это проблема, с которой я сталкиваюсь, из-за этого небольшого размера их трудно «дотронуться», иногда дотрагиваться не удается…
Одна из идей, о которых я думаю, заключается в увеличении «границ» калибра при сохранении исходного размера изображения. Проблема в том, что я много искал и перепробовал несколько вариантов с contentGravity, contentsCenter, contentsScale и т. Д ... безуспешно.
В частности, в соответствии с Apple Docs выглядит так, как это сделать с ContentCenter (а не с помощью ContentGravity), однако я получаю деформации в растровом изображении ...
Пожалуйста, любая идея действительно приветствуется, и заранее спасибо,
Луис