【问题标题】:UITextField in UITableViewCell using imageView of cellUITableViewCell 中的 UITextField 使用单元格的 imageView
【发布时间】:2017-12-23 17:42:26
【问题描述】:

我创建了一个带有文本字段的自定义 UITableViewCell,但我想使用单元格的图像视图,而不是在我的自定义单元格中插入一个。

这是我的代码:

import UIKit

class TextFieldTableViewCell: UITableViewCell, UITextFieldDelegate {

    @IBOutlet weak var textField : UITextField!

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

这是xib

在视图控制器中:

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        if indexPath.row == 0 {
            let cell : TextFieldTableViewCell! = tableView.dequeueReusableCell(withIdentifier: "textFieldCell", for: indexPath) as! TextFieldTableViewCell

            cell!.textField.text = "William Stevenson"
            cell!.textField.tag = indexPath.row
            cell!.imageView?.image = UIImage.init(icon: .FAUser, size: CGSize(width: 35, height: 35), textColor : UIColor.gray)

            return cell
        }
}

但文本字段位于图片下方

我尝试在我的自定义单元格中插入 imageView

但第一条分隔线的宽度不同

我该如何解决这个问题? 谢谢!

【问题讨论】:

  • 你想要第一个分隔线吗?还是第二个?
  • 喜欢第二个
  • 请不要在标题后面附加 solved。而是考虑将答案标记为已接受。这将告诉其他人问题已经解决。谢谢。

标签: ios swift uitableview uiimageview uitextfield


【解决方案1】:

分隔线具有两种不同宽度的原因是,当您最初将 imageView 放在自定义单元格之外时,它在图像顶部已经覆盖了分隔线。当您将 imageview 放在分隔符内时,它是可见的。看起来图像具有白色背景,因此它们掩盖了分隔线。如果我的猜测是正确的,请检查您的图标背景。如果它是白色的,则将它们更改为透明。否则在 imageview 和单元格底部之间提供一些填充

【讨论】:

  • 图标背景为UIColor.clear。我想要第二个分隔线(较短的)
  • 在看到代码之前我不知道确切的问题。但我可以告诉你一个黑客。在第一张图片中,您将在图片右侧获得文本字段。因此,仅保持这种状态,并且通过将图标宽度添加到约束的现有宽度来更改文本字段的左边距约束。
  • 将Texfield的文本与第二行的文本对齐的约束是多少(第二行是普通的UITableViewCell)?如何减小第一条分隔线的宽度以使其像第二条?问题在于分隔线的 with,而不是图像下方的 textField。
  • 在第一种情况下,我在自定义单元格中只有文本字段,我使用单元格的 imageView : cell!.imageView?.image = UIImage.init(icon: .FAUser, size: CGSize(width : 35, height: 35), textColor : UIColor.gray),但我不知道 textField 的左约束应该是多少来对齐它。在第二种情况下,我在xib中使用了imageview,但是分隔线很长。
  • 将左约束对齐到图标的宽度。例如,在您的情况下为 35
【解决方案2】:

我在 xib 的 IB 中使用我的 imageview 广告集“Separator”解决了问题,“Custom insets”左值等于 65。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-14
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2011-09-19
    相关资源
    最近更新 更多