无法使用 Motion-Kit gem 在 RubyMotion 中取消设置布局约束



我遇到以下情况。在一种情况下,我需要在视图的左侧布局一个元素,在另一种情况下,需要在视图的右侧呈现相同的视图。这两个约束显然是相互冲突的。

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约束或禁用/取消设置所有约束?

我没有成功取消设置/删除约束属性。目前,我通过引用 left 属性并在需要时更改其值来修复它。

  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
   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

最新更新