tableviewcell以编程方式使用AutoLayout更新约束

时间:2016-07-18 10:09:14

标签: ios autolayout constraints tableviewcell

我有一个使用Autolayout的自定义tableviewcell,在xib文件中设计。

设计

enter image description here

CustomTableViewCell.h: @Override public void onReceive(final Context context, Intent intent) { AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(context); dialogBuilder.setTitle("Warning"); dialogBuilder.setMessage("You are forced to be offline. Please try to login again."); dialogBuilder.setCancelable(false); dialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { if (Build.VERSION.SDK_INT >= 23){ if (Settings.canDrawOverlays(context)){ ActivityCollector.finishAll(); Intent intent = new Intent(context, LoginActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } else { Intent intent = new Intent(Settings.ACTION_MANAGE_OVERLAY_PERMISSION); context.startActivity(intent); } } else { ActivityCollector.finishAll(); Intent intent = new Intent(context, LoginActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } } }); AlertDialog alertDialog = dialogBuilder.create(); alertDialog.getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT); alertDialog.show(); }

它在桌面视图中工作正常。

我想要做的是在tableviewcell显示之前以编程方式更新CustomView的比率。

@property (weak, nonatomic) IBOutlet UIView *customView; @property (weak, nonatomic) IBOutlet NSLayoutConstraint *constraintRatio;

但此后细胞比例仍为1。 我做错了什么或者我错过了什么?谢谢你的任何建议。

1 个答案:

答案 0 :(得分:0)

问题解决了。

我误用了customCell.constraintRatio.constant。这应该是乘数。

multiplier只读。因此,完成我的工作的唯一方法是删除约束并添加新约束

这样做之后,一切正常。

参考: auto layout modify multiplier of constriaint programmatically