Как мы знаем, разделитель табличных окон настолько тонкий и красивый. Иногда нам приходится строить некоторую разделительную линию в раскадровке или nib, минимальное число равно 1, но на самом деле линия кажется намного более толстой, чем мы ожидали.
Мой вопрос заключается в том, как нарисовать линию 1px в раскадровке?
Как нарисовать линию 1px в storyBoard?
Ответ 1
Я тоже получил вашу мысль, наконец, я нашел выход.
Как мы знаем, если мы нарисуем линию и установим высоту по коду, мы можем установить высоту, равную (1.0/[UIScreen mainScreen].scale).
Но здесь вы хотите рисовать в раскадровке.
Мой путь - это подкласс UIView или UIImageView, основанный на вашем требовании как OnePXLine. В классе OnePXLine переопределите layoutSubviews, как показано ниже:
- (void)layoutSubviews {
[super layoutSubviews];
CGRect rect = self.frame;
rect.size.height = (1 / [UIScreen mainScreen].scale);
self.frame = rect;
}
И вы можете нарисовать линию 1 px в раскадровке, используя этот класс.
Удачи!
Ответ 2
Это поможет вам, если вы кодируете в Swift:
func lineDraw(viewLi:UIView)
{
let border = CALayer()
let width = CGFloat(1.0)
border.borderColor = UIColor(red: 197/255, green: 197/255, blue: 197/255, alpha: 1.0).CGColor
border.frame = CGRect(x: 0, y: viewLi.frame.size.height - width, width: viewLi.frame.size.width, height: viewLi.frame.size.height)
border.borderWidth = width
viewLi.layer.addSublayer(border)
viewLi.layer.masksToBounds = true
}
Ответ 3
Xcode 9 Swift: вы можете добавить тонкий разделитель с линией 1px в UIView
используя UIView
.
В разделе "Инспектор размеров" Просто установите высоту в 1, пример ширины - 360.
Документация Apple по UIView.
Ответ 4
вы можете сделать это как в любом UIControl/UIElement для этого и изменить высоту как 1
если вы хотите использовать 1 пункт, используйте это - 1
если вы хотите использовать 1pixel Используйте это - 1.0/UIScreen.mainScreen().scale
Objective-C
UIView *LineView=[[UIView alloc]initWithFrame:CGRectMake(0, 50, self.view.frame.size.width, 1)]; // customize the frame what u need
[LineView setBackgroundColor:[UIColor yellowColor]]; //customize the color
[self.view addSubview:LineView];
стриж
var LineView=UIView(frame: CGRectMake((0, 50, self.view.frame.size.width, 1))
LineView.backgroundColor=UIColor.yellowColor()
self.view.addSubview(LineView)
если вы хотите получить более подробную информацию об этом один раз
Ответ 5
вы можете присвоить значение float для рамки представления. поэтому вы можете сделать любое представление (lable, textview, view, textfield) и назначить высоту как 0.4f
или что-то программно и ширину, чтобы соответствовать собственной ширине.
lable.frame = CGRectMake(0,0,width of self.view,0.4f);
Ответ 6
Попробуйте в cellForRowAtIndex
UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, width, 1)];
separatorLineView.backgroundColor = [UIColor colorWithRed:242/255.0f green:222/255.0f blue:52/255.0f alpha:1.0];
[cell.contentView addSubview:separatorLineView];