我创建了一些视图
self.customView.frame = CGRect...;
添加子视图并更改框架。
这项工作正如我所料。 (UIView坚持到底)
UIView *bottomSeparatorView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, -1.0f, CGRectGetWidth(view.frame), 1.0f)];
bottomSeparatorView.backgroundColor = DEFAULT_COLOR_PLACEHOLDER;
bottomSeparatorView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin;
[view addSubview:bottomSeparatorView];
但这不起作用。 (UIView离开/隐藏)
UIView *bottomSeparatorView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, -0.5f, CGRectGetWidth(view.frame), 0.5f)];
bottomSeparatorView.backgroundColor = DEFAULT_COLOR_PLACEHOLDER;
bottomSeparatorView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin;
[view addSubview:bottomSeparatorView];
在调整customView:之前bottomSeparatorView框架
{{0, -0.5}, {0, 0.5}} // 1px
{{0, -1}, {0, 1}} // 2px
后:
{{0, 99}, {320, 0}} // 1px
{{0, 99}, {320, 1}} // 2px
答案 0 :(得分:0)
如果您确实希望它位于底部,则需要将底部分隔符框架的y值更改为view.bounds.size.height-0.5f
。如果我错了,请纠正我,但我认为你正试图获得真正的1px水平线。我不是百分之百确定这一点,但您可能会在非视网膜显示设备上使用0.5f
高度遇到问题。为了安全起见,您可以首先使用设备scale
属性来定义高度,如下所示:
float height = 1/[[UIScreen mainScreen]scale];
UIView *bottomSeparatorView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, view.bounds.size.height-height, CGRectGetWidth(view.frame), height)];
bottomSeparatorView.backgroundColor = DEFAULT_COLOR_PLACEHOLDER;
bottomSeparatorView.autoresizingMask = UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleTopMargin;
[view addSubview:bottomSeparatorView];