[英]Not Getting Output on Creating UITextView Programmatically in Swift
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
return true
}
}
import UIKit
class ViewController: UIViewController {
override func loadView()
{
self.view = UIViewUsingTextField()
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
import UIKit
class UIViewUsingTextField: UIView
{
var blueview: UIView?
init() {
super.init(frame: CGRectZero)
self.backgroundColor = UIColor.whiteColor()
self.setupView()
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
}
func setupView()
{
self.blueview = UIView()
self.blueview?.backgroundColor = UIColor.blueColor()
self.blueview?.translatesAutoresizingMaskIntoConstraints = false
addSubview(self.blueview!)
let centerXconstraint = NSLayoutConstraint(item: self.blueview!, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.CenterX, multiplier: 1.0, constant: 0)
let centerYconstraint = NSLayoutConstraint(item: self.blueview!, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.CenterY, multiplier: 1.0, constant: 0)
self.addConstraint(centerXconstraint)
self.addConstraint(centerYconstraint)
let widthConstraint = NSLayoutConstraint(item: self.blueview!, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0, constant: 200)
let heightConstraint = NSLayoutConstraint(item: self.blueview!, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0, constant: 200)
self.addConstraint(widthConstraint)
self.addConstraint(heightConstraint)
self.addConstraints([centerXconstraint,centerYconstraint,widthConstraint,heightConstraint])
}
/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
override func drawRect(rect: CGRect) {
// Drawing code
}
*/
}
通过使用上面的代码,我不能在模拟器中获得蓝色的 UITextView。 我想以编程方式创建 UITextview,我找不到为什么我没有将 Blue UITextView 作为此代码的输出的实际问题。 我的模拟器中只有白色屏幕作为此代码的输出。 我已尝试按照此链接进行编码。 有没有人请帮我解决这个问题以获得所需的输出。
将自定义类设置为View
:
下面的代码将在视图的中心添加一个 200x200 的blueView
:
import UIKit
class UIViewUsingTextField: UIView
{
var blueView : UIView?
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override init(frame: CGRect) {
super.init(frame: frame)
self.backgroundColor = UIColor.whiteColor()
setupView()
}
func setupView() {
self.blueView = UIView()
self.blueView?.backgroundColor = UIColor.blueColor()
self.blueView?.translatesAutoresizingMaskIntoConstraints = false
self.addSubview(self.blueView!)
let blueViewCenterXConstraint = NSLayoutConstraint(item: self.blueView!, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.CenterX, multiplier: 1.0, constant: 0)
let blueViewCenterYConstraint = NSLayoutConstraint(item: self.blueView!, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: self, attribute: NSLayoutAttribute.CenterY, multiplier: 1.0, constant: 0)
let blueViewWidthConstraint = NSLayoutConstraint(item: self.blueView!, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0, constant: 200)
let blueViewHeightConstraint = NSLayoutConstraint(item: self.blueView!, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.Equal, toItem: nil, attribute: NSLayoutAttribute.NotAnAttribute, multiplier: 1.0, constant: 200)
self.addConstraints([blueViewCenterXConstraint,blueViewCenterYConstraint,blueViewWidthConstraint,blueViewHeightConstraint])
}
}
如果您希望 blueView 覆盖整个 View:
func setupView() {
self.blueView = UIView()
self.blueView?.backgroundColor = UIColor.blueColor()
self.blueView?.translatesAutoresizingMaskIntoConstraints = false
self.addSubview(self.blueView!)
let constLeading = NSLayoutConstraint(item: self.blueView!,
attribute: NSLayoutAttribute.Leading,
relatedBy: .Equal,
toItem: self,
attribute: NSLayoutAttribute.Leading,
multiplier: 1,
constant: 0)
self.addConstraint(constLeading)
let constTrailing = NSLayoutConstraint(item: self.blueView!,
attribute: NSLayoutAttribute.Trailing,
relatedBy: .Equal,
toItem: self,
attribute: NSLayoutAttribute.Trailing,
multiplier: 1,
constant: 0)
self.addConstraint(constTrailing)
let constTop = NSLayoutConstraint(item: self.blueView!,
attribute: NSLayoutAttribute.Top,
relatedBy: .Equal,
toItem: self,
attribute: NSLayoutAttribute.TopMargin,
multiplier: 1,
constant: 0)
self.addConstraint(constTop)
let consBottom = NSLayoutConstraint(item: self.blueView!,
attribute: NSLayoutAttribute.Bottom,
relatedBy: .Equal,
toItem: self,
attribute: NSLayoutAttribute.BottomMargin,
multiplier: 1,
constant: 0)
self.addConstraint(consBottom)
}
在您的视图中添加一个框架并禁用 translatesAutoresizingMaskIntoConstraints 将使它为您工作。
self.blueview?.frame = CGRectMake(0, 0, 200, 200)
// self.blueview?.translatesAutoresizingMaskIntoConstraints = false
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.