0

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

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

4

2 回答 2

1

我没有成功取消/删除约束属性。目前我通过引用 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
于 2015-01-28T11:09:47.457 回答
0

我建议完全重新设置您的约束。

 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
于 2015-01-28T06:25:59.830 回答