我正在制作这种类型的屏幕。
我已使用3 UIButton
并以编程方式为他们提供了边框。小红线是UIView
。我已将UIView
等宽约束为趋势按钮。
现在我的问题是,当用户点按下一个按钮时,此UIView
应移至下一个按钮。
视图控制器为600x600
,下一个按钮位于200x0
所以如果我将UIView
的值更改为200,将进行硬编码,并根据屏幕大小进行更改。我希望它是完美的,不知道任何其他方式。
更新:
我使用AutoLayout
所以出于这个目的,我使用了[self.buttonBottomView setTranslatesAutoresizingMaskIntoConstraints:YES];
,当我运行应用程序时,按钮被搞砸了,就像截图一样。我在按钮上应用了一些constraints
。
答案 0 :(得分:2)
当您点按下一个按钮时,您可以使用NSLayoutConstraint
,更改LeadingConstaint
。
<强>代码:强>
- (void)changeSelectedByTapView:(UIView *)tapView {
_currentSelectedView = tapView;
self.lineImageViewLeadingConstaint.constant = tapView.frameX;
self.lineImageViewWidthConstaint.constant = tapView.width;
[UIView animateWithDuration:0.5f animations:^{
[self.lineImageView.superview layoutIfNeeded];
}];
}
答案 1 :(得分:0)
更改你的UIView框架。
view.frame = CGRectMake(0+buttonWidth*i, y, width, height);
我是指数,趋势为0,粉丝为为1,您的规则为为2。
同样,当您更改视图的边框时,它一次只显示在一个按钮上。