Как нарисовать линию в конструкторе интерфейсов в Xcode 4 - PullRequest
26 голосов
/ 06 июня 2011

Я хотел бы нарисовать простую линию вставки в Интерфейсном Разработчике, чтобы отделить некоторые элементы в списке и сделать интерфейс пользователя немного более аккуратным.Я не вижу никаких «линий» или подобных объектов в библиотеке объектов и, похоже, не могу найти никаких команд рисования в Интерфейсном конструкторе.

Ответы [ 8 ]

62 голосов
/ 06 июня 2011

Я использую очень узкий UIView с backgroundColor, установленным на соответствующий цвет.

7 голосов
/ 24 января 2013

Если вы боитесь, что UIView может повлиять на производительность, вы можете нарисовать линию в коде, используя CAShapeLayers из CoreGraphics.

У каждого UIView есть CALayer, поэтому нарисуйте линию и добавьте ее в представления CALayer. Вы можете сделать это либо в пользовательском drawRect UIView, либо в вашем контроллере вида:

(Обязательно добавьте Quartz Framework в ваш проект)

UIBezierPath *linePath = [UIBezierPath bezierPathWithRect:CGRectMake(0, 0,self.view.frame.size.width, 1)];

//shape layer for the line
CAShapeLayer *line = [CAShapeLayer layer];
line.path = [linePath CGPath];
line.fillColor = [[UIColor blackColor] CGColor];
line.frame = CGRectMake(xPosition, yPosition, self.view.frame.size.width,1);

[self.view.layer addSublayer:line];
7 голосов
/ 06 июня 2011

В библиотеке пользовательского интерфейса iPhone нет строк.Эта функциональность в Max OS X была предоставлена ​​NSBox, но на iPhone нет соответствующего элемента пользовательского интерфейса.

1 голос
/ 20 июня 2012

Вместо просмотра, почему бы просто не использовать метку и установить соответствующий цвет фона?

0 голосов
/ 23 ноября 2018

Вы можете использовать Progress View в качестве опции для горизонтальной линии. Просто измените цвет оттенка и прогресс на 1, что составляет 100%.

0 голосов
/ 17 марта 2014

Как аллитерация - в Интерфейсном Разработчике добавьте представление, высота которого установлена ​​в 2 пункта. Подключите IBOutlet к этому виду и установите цвет и ширину границы его слоя:

self.mySeparatorLine.layer.borderWidth = 1.0f; self.mySeparatorLine.layer.borderColor = [UIColor lightGrayColor] .CGColor;

0 голосов
/ 29 апреля 2013

Интерфейсный конструктор не позволяет рисовать тени, необходимые для линии врезки. Если вы работаете с Photoshop, вы это знаете.

Следующий код нарисует «вставку», если линия перед белым / бежевым фоном.

UIView *line = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width, 1.0f)];
line.backgroundColor = [UIColor colorWithRed:(200.0f/255.0f) green:(200.0f/255.0f) blue:(200.0f/255.0f) alpha:1.0f];
line.layer.shadowColor = [UIColor darkGrayColor].CGColor;
line.layer.shadowOffset = CGSizeMake(0.0f, 1.0f);
line.layer.shadowRadius = 0.5f;
line.layer.shadowOpacity = 0.4f;
line.layer.masksToBounds =NO;
[Background addSubview:line];

Не забудьте импортировать .

0 голосов
/ 07 декабря 2011

Я использовал вид, сузил его и изменил цвет, чтобы он выглядел как линия. Но моя проблема в том, что я использую линию на вертикальной прокрутке, и линии также прокручиваются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...