別のアプローチ:セルの底部にボタンの底部から制約の状態トグル
、.isHidden
状態と一緒。
date
ラベルの下部から、セルの下部に垂直方向のスペース制約を追加します。>= 4
に設定します(または、ボタンがない場合には「パディング」が必要です)。
スペーシング拘束のために@IBOutlet
を編集ボタンの下部からセルの下部に追加します。画像には、bottom = Edit Button.bottom + 2
と表示されます。あなたが持っていない限り、
が
@IBOutlet weak var editButtonBottomConstraint: NSLayoutConstraint!
あなたはその行を編集する必要があります
が、しかし...制約が時に無効化さ割り当て解除されます:あなたは+ CTRLソースファイルにIBから制約をドラッグすると、それはこのようなIBOutletラインを生成します。それに対する「強い」言及。だから、単にweak
修正削除:cellForRowAt
で、今
@IBOutlet var editButtonBottomConstraint: NSLayoutConstraint!
を、あなたが行うことができます:
cell.deleteButton.isHidden = !(comment.userID == appUserID)
cell.editButton.isHidden = !(comment.userID == appUserID)
cell.editButtonBottomConstraint.isActive = (comment.userID == appUserID)
を、個人的に、私はセル内部の機能ということになるだろうが。あなたのセル設計に基づいて
は、しかし、私はcommentsLabel
推測しているが、おそらく/多分複数行のラベルですか?そしてコメントが例えば8行であれば、セルを垂直方向に拡大したいでしょうか?そうであれば、まだいくつかの制約関係があります。
ボタンは値に基づいて表示または非表示になっていますか?それとも、何か他のことが起こった後で、彼らが見せられ、隠される可能性がありますか?つまり、あなたが 'cellForRowAt'の中にいるときは、ボタンを表示するかどうかを決めるときに*ですか? – DonMag
はいcellForRowAtでDonMag ..私はチェック:if comment.userID == appUserID。 コメントがユーザーに属している場合は、他のボタンを表示します。 –