私のUIViewのはそうのような互いの上に積み重ねています私のUIViewが互いの上に積み重なるのを妨げるどのような制約がありますか?
各UIViewのはwordContainer
の内側にあります。その後、私はUIViewのののこのコレクションを取り、私のwordContainer
に追加
var labels = [UIView]()
for word in words {
let wordLabel = UILabel(frame: CGRectZero)
wordLabel.text = word.valueForKey("sanskrit") as? String
wordLabel.numberOfLines = 0
wordLabel.sizeToFit()
wordLabel.translatesAutoresizingMaskIntoConstraints = false
let englishWordLabel = UILabel(frame: CGRectMake(wordLabel.frame.width + 10,0,0,0))
englishWordLabel.text = word.valueForKey("english") as? String)
englishWordLabel.numberOfLines = 0
englishWordLabel.sizeToFit()
englishWordLabel.lineBreakMode = .ByWordWrapping
englishWordLabel.translatesAutoresizingMaskIntoConstraints = false
let wordView = UIView(frame: CGRectMake(0,0,self.view.frame.width,englishWordLabel.frame.height))
wordView.translatesAutoresizingMaskIntoConstraints = false
wordView.addSubview(wordLabel)
wordView.addSubview(englishWordLabel)
wordView.sizeToFit()
labels.append(wordView)
}
:各UIViewのは、私はそうのような2つのつの子UILabel年代に、個々のUIViewを作成することの
の内側に2 UILabel
年代を持っています。これは私が想像するところでは、NSLayoutConstraintsを設定する必要があります。アイデアは、私がそれらのすべてをお互いの上に適切に積み重ねて欲しいということです。
word: definition
word: definition
word: definition
word: definition
をしかし、その代わりに、それは次のようになります:たとえば、次のようになります
let wordContainer = UIView(frame: CGRectZero)
var currentY:CGFloat = 0.0
let margin_height:CGFloat = 4.0
var height:CGFloat = 0
for view in wordViews {
var rect = view.frame
rect.origin.y = currentY
view.frame = rect
currentY += view.frame.height
height += view.frame.height
wordContainer.addSubview(view)
}
let containRect = CGRectMake(0,0,self.view.frame.width, height)
wordContainer.frame = containRect
そして:私はそうのようwordContainer
にそれらを追加
私はwordContainer
のために自分の制約を設定しました。これは、すべての単語のためのスペースが、eacの上に積まれていなければhその他:
wordContainer.bottomAnchor.constraintEqualToAnchor(cell.contentView.bottomAnchor).active = true
wordContainer.topAnchor.constraintEqualToAnchor(cell.contentView.topAnchor).active = true
私の最新のアイデアは、これに制約を追加する必要があります。私はcell
の高さにNSLayoutConstraints
を追加することで実験してきた、と私はもはやすべての単語を行う際に、適切にレイアウトされていません。代わりに、それらはお互いの上に積み重ねられます。しかし、これは自動的にcontentView内部のコンテンツを、その高さを調整するために、セルがcontentViewのすべての4辺に対する制約を持たなければならないためには
あなたは、Visual IBを参照している、自動レイアウトで – dan
@danを使用せずに自動レイアウト 'UITableViewAutomaticDimension'を使用することはできませんか? – Trip
autolayoutとは、ビューに制約を加えることを意味します。実際には、設定フレームでビューを手動でスタックしようとするのではなく、 'UIStackView'を使うだけです。 – dan