私のコード(Swift 2.0 iOS 9)でUIScrollView
を作成し、ScrollViewにUILabel
を追加して大量のテキストを表示しました。テキストはviewDidLoad()
によってロードされ、バンドル内のファイルからロードされます。UILabelの複数の行にフルテキストが表示されない
私はnumberOfLines = 0
とlabel.lineBreakMode = .ByWordWrapping
を使用しましたが、8行のテキストのみが表示されています。コードの下には、コード結果のイメージが表示されます。私は彼らの境界を示すためにUILabel
とUIScrollView
に色を付けました。
override func viewDidLoad() {
super.viewDidLoad()
self.configureView()
let sv = UIScrollView(frame: self.view.bounds)
sv.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
self.view.addSubview(sv)
sv.backgroundColor = UIColor.greenColor()
var y: CGFloat = 10
let file = detailItem as! String
if let sectionsFile = NSBundle.mainBundle().pathForResource(file, ofType: "txt") {
if let sectionText = try? String(contentsOfFile: sectionsFile, usedEncoding: nil) {
let label = UILabel()
label.numberOfLines = 0
label.text = sectionText
label.sizeToFit()
label.frame.origin = CGPointMake(10,y)
sv.addSubview(label)
y += label.bounds.size.height + 10
label.lineBreakMode = .ByWordWrapping
label.frame.size.width = self.view.bounds.size.width - 20
label.backgroundColor = UIColor.yellowColor()
label.autoresizingMask = .FlexibleWidth
}
var sz = sv.bounds.size
sz.height = y
sv.contentSize = sz
}
}
これは、コードの結果である:http://i.stack.imgur.com/Zh4En.png
は、私はすべてのテキストを表示するようにできるように行うには何が必要ですか?あるいは、情報テキストを提示するという同じ目的を達成するより良い方法がありますか?
テキストを正当化しようとしましたか?それはあなたがする必要があります。 – Woodstock
多分、他のフレーム変更コード、特に幅を更新するコードの後にsizeToFit呼び出しを移動する必要があります。 – Surely
ラベルに制約がありますか? – TheValyreanGroup