【发布时间】:2019-11-26 18:05:16
【问题描述】:
我正在创建一个扩展 UITableViewCell 的类——它将显示一个社交媒体新闻源,每个单元格都是某人的帖子。
我添加了一个 UIButton 作为 UIView 的子视图,因此 UIView 将包含按钮和标签作为子视图,like this。 (抱歉图片有点小,但我想你会明白的)。
但是,UIButton 没有响应点击,甚至没有突出显示。它的superview本身有很多superview,都是栈,但是我查了一下,每个superview的isUserInteractionEnabled都是真的。
let button = UIButton(type: .system)
button.translatesAutoresizingMaskIntoConstraints = false
button(UIImage(named: "vertical_dots")?.withRenderingMode(.alwaysOriginal), for: .normal)
button.backgroundColor = .white
button.imageView?.contentMode = .scaleAspectFit
button.addTarget(self, action: #selector(myButtonAction), for: .touchUpInside)
label.text = "\(userPost?.minutesAgo)m"
label.font = label.font.withSize(11.0)
label.textColor = .lightGray
label.translatesAutoresizingMaskIntoConstraints = false
label.numberOfLines = 1
let superview = UIView()
superview.translatesAutoresizingMaskIntoConstraints = false
superview.addSubview(button)
superview.addSubview(label)
label.leftAnchor.constraint(equalTo: superview.leftAnchor).isActive = true
label.heightAnchor.constraint(equalToConstant: 40).isActive = true
label.centerYAnchor.constraint(equalTo: superview.centerYAnchor).isActive = true
button.leftAnchor.constraint(equalTo: label.rightAnchor).isActive = true
button.centerYAnchor.constraint(equalTo: superview.centerYAnchor).isActive = true
button.heightAnchor.constraint(equalToConstant: 20).isActive = true
button.widthAnchor.constraint(equalToConstant: 15).isActive = true
我收到了很多约束警告,但我认为这不会影响事情吗?
请注意,这只是我的代码的一部分,我正在将超级视图添加到其他视图中,但我没有在这里展示所有内容。我的所有视图都没有框架,只有约束,而且它们都显示正确。
我认为以前没有人问过这个问题,因为其他人正在使用 Interface Builder,而我正在以编程方式完成这一切。
【问题讨论】:
-
我的约束不会覆盖它吗?
-
您还没有添加子视图来查看
-
我稍后会在代码中执行此操作,但不会在此处显示,我会将该注释添加到我的帖子中
-
是的,我注意到关于超级视图,它没有框架,但视图仍然在应用程序中正确显示。我的观点都没有我为它们设置的约束的框架——这很糟糕吗?它们都按照我的意愿出现
-
您将超级视图添加到 TableViewCell 并为其设置约束。你现在还看到按钮和标签吗?我想问题应该是那个
标签: ios swift uibutton subview