gpt4 book ai didi

ios - 快速在 UIView 子类中创建 subview

转载 作者:搜寻专家 更新时间:2023-10-31 23:05:34 24 4
gpt4 key购买 nike

我有 UIView 的代码子类。

import UIKit

class DrawingSquareView: UIView {


override func drawRect(rect: CGRect)
{
var apertureRect : CGRect = CGRectMake(80, 200, 160 , 158)
var context : CGContextRef = UIGraphicsGetCurrentContext()

/* draw the transparent rect */
CGContextSetRGBFillColor(context, 0.0, 0.0, 0.0, 0.0)
CGContextSetBlendMode(context, kCGBlendModeCopy)
CGContextFillRect(context, apertureRect)

// /* draw a white border */
CGContextSetRGBStrokeColor(context, 1.0, 1.0, 1.0, 1.0)
CGContextStrokeRect(context, apertureRect)
}
override func awakeFromNib()
{
var cropButtons : UIButton = UIButton(frame: CGRectMake(70, 150, 160 , 158))
cropButtons.setTitle("Crop Image", forState: UIControlState.Normal)
cropButtons.setTitleColor(UIColor.whiteColor(), forState: UIControlState.Normal)
self.addSubview(cropButtons)

}
init(frame: CGRect)
{
super.init(frame: frame)
}

override func hitTest(point: CGPoint, withEvent event: UIEvent!) -> UIView!
{
var view : UIView = self.superview
return view.viewWithTag(99)

}
}

还有在 UIViewController 类中调用 UIView 子类的代码

@IBAction func CropButtonClicked(sender: UIButton)
{
var DrawingSquareObject : DrawingSquareView = DrawingSquareView(frame:self.view.frame)
self.view.addSubview(DrawingSquareObject)
}

但是当我点击 superview 中的按钮时,它确实显示了我在 UIView 中创建的矩形使用 draRect: 进行子类化, 但它显示了我在 awakefromNib() 中创建的 UIButton .我尝试在 init(frame:) 中添加 subview , init(coder:) , addsubview(view:)函数,它们都不显示 UIButton .我也想知道如何删除这个 DrawingSquareView来自 superview .

请帮助我,提前谢谢你。

最佳答案

我认为你的第一个问题是 View 在初始化期间没有初始化,所以不要尝试添加 subview 。

要从它的父 View 中删除 DrawingSquareView,试试这个:

    for view in self.view.subviews {
if view is DrawingSquareView {
view.removeFromSuperview()
}
}

关于ios - 快速在 UIView 子类中创建 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24925761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com