在ViewController中显示自定义UIView

时间:2019-02-25 08:17:42

标签: ios swift uiview

我正在创建要在视图控制器中显示的UIView。我已经创建了UIView并显示了它,但是现在出现的问题是:

  1. 当我在视图控制器中调用UIView时,无法再与视图控制器的元素进行交互。我创建的CustomView已经完全阻止了与视图控制器的交互,并且我希望能够与UIViewController进行交互。

  2. 我想隐藏状态栏,其中包括电池百分比和网络栏以及其他内容,以便视图完全覆盖它们。我实现了覆盖它们的代码,但是返回了错误。

下面是我的代码

class SliderView: CustomView {

    @IBOutlet weak var containerView: UIView!
    @IBOutlet weak var sliderImage: UIImageView!
    @IBOutlet weak var sliderText: UILabel!

    override func initialize() {
        super.initialize()

        let name = String(describing: type(of: self))
        let nib = UINib(nibName: name, bundle: .main)
        nib.instantiate(withOwner: self, options: nil)

        self.addSubview(self.containerView)
        self.containerView.translatesAutoresizingMaskIntoConstraints = false
        NSLayoutConstraint.activate([
            self.containerView.topAnchor.constraint(equalTo: self.topAnchor),
            self.containerView.leadingAnchor.constraint(equalTo: self.leadingAnchor),
            self.containerView.trailingAnchor.constraint(equalTo: self.trailingAnchor),
            ])
    }

    override func point(inside point: CGPoint, with event: UIEvent?) -> Bool {
        return sliderImage.frame.contains(point)
    }

    override var prefersStatusBarHidden: Bool {
        return true
    }

  // THIS THROWS an error 'Property does not override any property from its superclass'
}

我的UIView在Viewcontroller中的调用方式为

 weak var sliderView: SliderView!

    override func loadView() {
        super.loadView()

        let sliderView = SliderView()
        self.view.addSubview(sliderView)
        NSLayoutConstraint.activate([
            sliderView.topAnchor.constraint(equalTo: self.view.topAnchor),
            sliderView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor),
            sliderView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor),
            sliderView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor),
            ])
        self.sliderView = sliderView
    }

    override func viewDidLoad() {
        super.viewDidLoad()

        sliderView.sliderText.text = "HOOOOO WORKS"
}

1 个答案:

答案 0 :(得分:0)

aws s3 sync s3://sorce-bucket/ s3://dest-bucket/ --exclude "logs/*".

您的自定义视图涵盖了整个AmazonS3Client s3client = new AmazonS3Client(Globals.AWSAccessKey,Globals.AWSSecretKey, RegionEndpoint.USEast1); Stream rs = s3client.GetObject(new GetObjectRequest { BucketName = SourceContainer, Key = key}).ResponseStream; 。因此,不可能与NSLayoutConstraint.activate([ sliderView.topAnchor.constraint(equalTo: self.view.topAnchor), sliderView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor), sliderView.leadingAnchor.constraint(equalTo: self.view.leadingAnchor), sliderView.trailingAnchor.constraint(equalTo: self.view.trailingAnchor), ]) 进行交互。

只需尝试使用以下内容替换第二个约束,以仅覆盖屏幕高度的一半:

UIViewController

这只是看到差异的建议,即不是解决方案。