textviewは動的で、右上隅にボタンがあります。それはテキストフィールドのために働く。それはNSLayoutConstraintに対処するにはあまりにも複雑だUITextViewの右上にボタンをプログラムで直接追加することができません
class CommonTextView: UITextView {
private let microphoneButton = UIButton(type: .System)
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
initTextView()
}
func initTextView() -> Void {
self.layer.cornerRadius = 7
microphoneButton.translatesAutoresizingMaskIntoConstraints = false
//microphoneButton.backgroundColor = UIColor.lightGrayColor().colorWithAlphaComponent(0.3)
microphoneButton.setImage(UIImage(named: "mic"), forState: .Normal)
microphoneButton.tintColor = UIColor.darkGrayColor()
microphoneButton.addTarget(self, action: #selector(self.microphonePressed), forControlEvents: .TouchUpInside)
self.addSubview(microphoneButton)
let trailingConstraint = NSLayoutConstraint(item: microphoneButton, attribute: .Trailing, relatedBy: .Equal, toItem: self, attribute: .Trailing, multiplier: 1, constant: 0)
let topConstraint = NSLayoutConstraint(item: microphoneButton, attribute: .Top, relatedBy: .Equal, toItem: self, attribute: .Top, multiplier: 1, constant: 0)
let widthConstraint = NSLayoutConstraint(item: microphoneButton, attribute: .Width, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 40)
let heightConstraint = NSLayoutConstraint(item: microphoneButton, attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .NotAnAttribute, multiplier: 1, constant: 40)
self.addConstraints([trailingConstraint, topConstraint, widthConstraint, heightConstraint])
}
コードを表示してください –
コードを更新しました –
ボタンの一般的な場所をクリックできますか?何か影響はありますか? –