iOS - Swift Как нарисовать UIView с помощью двухстрочных раскрасок? [Дубликат]

2
задан StuartM 16 September 2013 в 15:41
поделиться

4 ответа

Три решения, о которых я могу думать:

  • гнездят UIView в другом, определяют одну границу для каждого,
  • рисуют границу самостоятельно в -(void)drawRect;
  • используйте UIImageView с изменяемым размером; растягиваемое изображение ваших границ в качестве фона (лучшее решение по производительности).
2
ответ дан Cyrille 18 August 2018 в 01:25
поделиться

Это невозможно с одним экземпляром UIView без добавления слоев.

Что вы можете сделать, так это создать представление, которое больше необходимого, установить его границу соответствующим образом, а затем добавить CALayer и поместите его туда, где вы хотите внутреннюю границу, и соответствующим образом установите его свойства границы.

Использование CALayers обычно быстрее, чем полноэкранный UIView, но вы также можете просто иметь вложенный UIView добиться такого же эффекта.

2
ответ дан Ben S 18 August 2018 в 01:25
поделиться

Попробуйте это,

Я добавляю тень с альфа-1, которая будет действовать как внутренняя граница. И нормальная граница задается как внешняя граница.

yourView.frame = CGRectInset(yourView.frame, -borderWidth, -borderWidth);
yourView.layer.borderColor = [UIColor blackColor].CGColor;
yourView.layer.borderWidth = borderWidth;


yourView.layer.shadowColor = [UIColor whiteColor].CGColor;
yourView.layer.shadowOffset = CGSizeMake(0, 1);
yourView.layer.shadowOpacity = 1;
yourView.layer.shadowRadius = 1.0;
yourView.clipsToBounds = YES;
1
ответ дан Neenu T Kuriakose 18 August 2018 в 01:25
поделиться

Это невозможно, вам придется подделать границы, добавив UIView с цветом фона в xib / view.

1
ответ дан Rob 18 August 2018 в 01:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: