0
下の画像に従って、埋め込まれたUITextViewを持つカスタムコントロールがその境界から飛び出します。私は境界線などに無駄にクリップを適用しようとしました。おそらく、カスタムコントロールを確立するときには単純なものでしょう。Stackviewセルの境界を超えているカスタムコントロール
ここにViewControllerのコードを示します。
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var textStackView: UIStackView!
@IBOutlet weak var tabStackView: UIStackView!
override func viewDidLoad() {
super.viewDidLoad()
addButtons()
addTextViews()
}
func addButtons(){
var count = 0
while (count <= 10){
let btn = UIButton()
btn.backgroundColor = UIColor.gray
btn.setTitle("Btn \(count)", for: .normal)
tabStackView.addArrangedSubview(btn)
count += 1
}
}
func addTextViews(){
var count = 0
while (count <= 5){
if (count == 0){
let textView = CustomView()
textView.layer.borderColor = UIColor.green.cgColor //Green border
textView.layer.borderWidth = 1
textView.embededTextView.text = "Some sample text here. Some sample text here. Some sample text here. Some sample text here. Some sample text here."
//textView.sizeToFit() //Does nothing
//textView.clipsToBounds = true //Doesnt prevent overflow
textStackView.addArrangedSubview(textView)
}
else{
let textView = UITextView()
textView.layer.borderColor = UIColor.black.cgColor
textView.layer.borderWidth = 1
textView.text = "Some sample text here. Some sample text here. Some sample text here. Some sample text here. Some sample text here."
textStackView.addArrangedSubview(textView)
}
count += 1
}
}
}
とカスタムコントロール
import UIKit
class CustomView: UIView {
@IBOutlet var view: UIView!
@IBOutlet weak var embededTextView: UITextView!
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
Bundle.main.loadNibNamed("CustomView", owner: self, options: nil)
self.addSubview(self.view)
}
override init(frame: CGRect){
super.init(frame: frame)
Bundle.main.loadNibNamed("CustomView", owner: self, options: nil)
self.addSubview(self.view)
view.layer.borderWidth = 4
view.layer.borderColor = UIColor.red.cgColor
//view.sizeToFit()
}
}
ビューをスタックビューに追加する方法を確認してください。あなたは、期待される出力が図の形で何であるかを見せてください。 – user1046037
目的はオーバーフローを持たないことでした。以下の「view.frame = self.bounds」の答えを参照してください。ありがとう –