无法使用 Motion-Kit 在 RubyMotion 中取消布局约束 gem
Unable to unset a layout constraint in RubyMotion using Motion-Kit gem
我遇到了以下情况。
在一种情况下,我需要将元素布局到视图的左侧,在另一种情况下,需要将相同的视图呈现在视图的右侧。这两个约束显然是冲突的。
def action_style
diameter = rmq.device.width*0.06
constraints do
width.is diameter
height.is diameter
center_y :image
end
reapply do
constraints do
offset = rmq.device.width*0.08
if self.even
left.is 20
else
right.is -offset
end
end
end
end
Left
和 Right
有冲突,我没有得到想要的结果。有什么方法可以禁用 left
约束或 disable/unset 所有约束吗?
我建议您完全重新设置约束。
def action_style
diameter = rmq.device.width * 0.06
reapply do
target.removeConstraints(target.constraints)
constraints do
width.is diameter
height.is diameter
center_y :image
offset = rmq.device.width * 0.08
if self.even
left.is 20
else
right.is -offset
end
end
end
end
我没有成功 unsetting/removing 约束 属性。
目前我通过引用左侧 属性 并在需要时更改其值来修复它。
def action_style
diameter = rmq.device.width*0.06
offset = rmq.device.width*0.08
constraints do
width.is diameter
height.is diameter
center_y :image
@left = left.is offset
end
reapply do
constraints do
if self.even
@left.constant = offset
else
@left.constant = rmq.device.width/2-offset-diameter
end
end
end
end
我遇到了以下情况。 在一种情况下,我需要将元素布局到视图的左侧,在另一种情况下,需要将相同的视图呈现在视图的右侧。这两个约束显然是冲突的。
def action_style
diameter = rmq.device.width*0.06
constraints do
width.is diameter
height.is diameter
center_y :image
end
reapply do
constraints do
offset = rmq.device.width*0.08
if self.even
left.is 20
else
right.is -offset
end
end
end
end
Left
和 Right
有冲突,我没有得到想要的结果。有什么方法可以禁用 left
约束或 disable/unset 所有约束吗?
我建议您完全重新设置约束。
def action_style
diameter = rmq.device.width * 0.06
reapply do
target.removeConstraints(target.constraints)
constraints do
width.is diameter
height.is diameter
center_y :image
offset = rmq.device.width * 0.08
if self.even
left.is 20
else
right.is -offset
end
end
end
end
我没有成功 unsetting/removing 约束 属性。 目前我通过引用左侧 属性 并在需要时更改其值来修复它。
def action_style
diameter = rmq.device.width*0.06
offset = rmq.device.width*0.08
constraints do
width.is diameter
height.is diameter
center_y :image
@left = left.is offset
end
reapply do
constraints do
if self.even
@left.constant = offset
else
@left.constant = rmq.device.width/2-offset-diameter
end
end
end
end