无法使用 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

LeftRight 有冲突,我没有得到想要的结果。有什么方法可以禁用 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