我想在容器视图的右下角放置一个指示器视图,我有这个代码来插入视图
var img:UIImageView?
img = UIImageView(frame: CGRect(x: 0, y: 0, width: singleCheckViewWidth, height: singleCheckViewHeight))
img!.image = UIImage(named: "check")
img!.tag = 21
img!.translatesAutoresizingMaskIntoConstraints = false
img!.backgroundColor = UIColor.redColor()
//Aggiungo la vista al fumetto
cell.textView!.addSubview(omg!)
问题是,使用此代码,我的左上角有10px边距的图标,并且工作正常:
let iconVerticalConstraints = NSLayoutConstraint.constraintsWithVisualFormat(
"V:|-10-[indicator(\(singleCheckViewHeight))]",
options: [],
metrics: nil,
views: views)
allConstraints += iconVerticalConstraints
let horizontalConstraints = NSLayoutConstraint.constraintsWithVisualFormat(
"H:|-10-[indicator(\(singleCheckViewWidth))]",
options: [],
metrics: nil,
views: views)
allConstraints += horizontalConstraints
这是图片:
但如果我尝试使用此代码在左下角移动图像:
let iconVerticalConstraints = NSLayoutConstraint.constraintsWithVisualFormat(
"V:[indicator(\(singleCheckViewHeight))]-10-|",
options: [],
metrics: nil,
views: views)
allConstraints += iconVerticalConstraints
let horizontalConstraints = NSLayoutConstraint.constraintsWithVisualFormat(
"H:[indicator(\(singleCheckViewWidth))]-10-|",
options: [],
metrics: nil,
views: views)
allConstraints += horizontalConstraints
如果我尝试使用此代码将图片放在左上角,我就不会再看到图像了:
let iconVerticalConstraints = NSLayoutConstraint.constraintsWithVisualFormat(
"V:|-10-[indicator(\(singleCheckViewHeight))]",
options: [],
metrics: nil,
views: views)
allConstraints += iconVerticalConstraints
let horizontalConstraints = NSLayoutConstraint.constraintsWithVisualFormat(
"H:[indicator(\(singleCheckViewWidth))]-10-|",
options: [],
metrics: nil,
views: views)
allConstraints += horizontalConstraints
我在容器外获取图像,如下图所示:
任何想法有什么不对?以及如何以直角向下移动图标?
谢谢!
答案 0 :(得分:0)
如果所有父视图都没有正确对齐,也没有兄弟姐妹,那么事情可能会失败。最重要的是,
cell.textView!.addSubview(omg!)
omg
?我猜你的意思是img
?或者我错了吗?
此外,除此之外,还没有提及您将这种容器放在哪种容器中?
如果它只是一个NSView或UIView,那么xyz.cell就不是放置它的地方。如果它是一个TableiewView,一个单元格可以,但是所有约束都设置好了。如果是iOS,则是UITableViewCell,即单元格的最顶层视图"即,你是否将背景视图添加为图像视图,这可能会使它黯然失色?
你能详细说明一下这个场景是什么,这样我们才能得到更好的画面吗? (没有双关语)