为什么tableView单元格不是动态的?

时间:2019-07-09 02:26:45

标签: ios swift uilabel interface-builder word-wrap

更新:

我发现问题是由于删除包装的文本后可见的日期标签顶部约束所致。问题是日期标签在其他文本下方。真正的问题可能是单元没有根据约束条件动态变化吗?

我正在尝试在UILabel中包装文本以进行包装(与此同时,我正在尝试根据文本进行单元格更改)

.xib中,设置单元格,执行此操作:

    self.notifInfoLabel.numberOfLines = 0
    self.notifInfoLabel.lineBreakMode = .byWordWrapping

enter image description here  sizeToFit在返回委托方法中的单元格之前即被调用。

cell.notifInfoLabel.sizeToFit()//EDIT: turns out this is not needed

    return cell
}

viewDidLoad上并在.reloadData()之前调用configure方法

func configureTableView() {
    self.tableView.estimatedRowHeight = 82
    self.tableView.rowHeight = UITableView.automaticDimension
}

当前,标签中的文字似乎包裹在日期标签下方...

我如何使其按预期工作?

1 个答案:

答案 0 :(得分:5)

您对自动版式引擎的约束感到困惑。

  • 如果文本很小,则需要在图像视图的底部留一些空间,并且

  • 在这种情况下,您希望文本动态化。

解决方案非常简单。

<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.constraint.ConstraintLayout android:id="@+id/pinLayout" android:layout_width="match_parent" android:layout_height="250dp"> <android.support.constraint.ConstraintLayout android:id="@+id/cl_root" android:layout_width="match_parent" android:layout_height="wrap_content" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" tools:visibility="visible"> <TextView android:id="@+id/numberTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:gravity="top" android:text="00000000" android:textColor="@color/appTintColor" android:textSize="18sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout> <android.support.constraint.ConstraintLayout android:id="@+id/constraintLayout" android:layout_width="match_parent" android:layout_height="0dp" app:layout_constraintTop_toBottomOf="@id/cl_root" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHeight_percent="0.4" app:layout_constraintStart_toStartOf="parent"> <LinearLayout android:layout_width="0dp" android:layout_height="0dp" android:orientation="horizontal" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"> <TextView android:id="@+id/pinView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.25" android:gravity="center" android:text="-" android:textColor="@color/appTintColor" android:textSize="36sp" /> <TextView android:id="@+id/pinView2" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.25" android:gravity="center" android:text="-" android:textColor="@color/appTintColor" android:textSize="36sp" /> <TextView android:id="@+id/pinView3" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.25" android:gravity="center" android:text="-" android:textColor="@color/appTintColor" android:textSize="36sp" /> <TextView android:id="@+id/pinView4" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="0.25" android:gravity="center" android:text="-" android:textColor="@color/appTintColor" android:textSize="36sp" /> </LinearLayout> </android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout> <android.support.constraint.ConstraintLayout android:id="@+id/constraintLayout2" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHeight_percent="0.4" app:layout_constraintStart_toStartOf="parent"> <Button android:id="@+id/confirmButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/rounded_corner_shape_tint" android:paddingLeft="16dp" android:paddingRight="16dp" android:text="Confirm Pin" android:textColor="@color/appMainColor" android:textSize="14sp" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.5" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout> </android.support.constraint.ConstraintLayout> 的底部约束将 = 更改为> = ,优先级为 750

Imageview的底部约束将 = 更改为> =

希望对您有帮助