Я пытаюсь создать изменяемую версию следующего изображения (40x28, маленького треугольник в нижнюю части должны быть сосредоточены горизонтально):комплексов изображений (пузырчатый/штырь) и [UIImage resizableImageWithCapInsets:]
UIEdgeInsets imageInsets = UIEdgeInsetsMake(4.0f, 4.0f, 8.0f, 4.0f);
UIImage *pinImage = [[UIImage imageNamed:@"map_pin"] resizableImageWithCapInsets:imageInsets];
согласно documentation, этот простой подход не будет работать, так как мой треугольник попадает в перезначительном области (фиксированная высота, но масштабируемую ширина):
Это вызовет такую же проблему, как описано в this, очень похожие SO-дублированные (черепичные) треугольники. Но, к сожалению, их решение не работает для моего конкретного случая, поскольку исключение треугольника из масштабируемой области вызывает его неправильное использование, и по очевидным причинам оно не будет центрироваться по горизонтали.
Так что интересно ... возможно ли достичь моей цели, используя метод [UIImage resizableImageWithCapInsets:]
? Или может быть, я должен попробовать что-то еще, например, рисовать все в коде?
В принципе, я хотел бы реализовать что-то вроде информационных окон из Google Maps SDK:
ли у попытаться рисовать изображения с помощью bezierPAth, и пусть Безье путь изменения размера на основе просмотра кадра> –
Пока нет, но похоже, мне придется идти в этом направлении. – fraggjkee
Если вы все еще хотите UIImage, вы можете разрезать его на кусочки. Один для стрелки, другой для прямоугольника. и вычислить их. Пользовательский UIView (или UIImageView) с ограничениями, границы с ведущими/конечными/верхними для супервизора и внизу на расстоянии, равном высоте для наблюдения, и фиксированной шириной стрелки, центрированной, фиксированной высотой и дном для наблюдения? – Larme