我正在尝试在按钮操作上添加自定义视图。自定义视图已成功添加,但无法正常显示
@IBAction func sideButtonAction(_ sender: UIButton) {
sideSubView = SideView(frame: CGRect(x: sender.frame.origin.x ,y: sender.frame.origin.y + 40,width: 200,height: 200))
self.view.addSubview(sideSubView)
}
在UIView类
中func xibSetup() {
view = loadViewFromNib()
view.frame = bounds
view.autoresizingMask = [UIViewAutoresizing.flexibleWidth, UIViewAutoresizing.flexibleHeight]
addSubview(view)
}
override init(frame: CGRect) {
super.init(frame: frame)
xibSetup()
}
在屏幕截图中,蓝色视图是自定义视图,它没有正确显示,我设置的高度和宽度是200.
由于
答案 0 :(得分:1)
请使用此,
sideSubView = SideView(frame: CGRect(x: sender.frame.origin.x - 200 ,y: sender.frame.origin.y + 40,width: 200,height: 200))
答案 1 :(得分:0)
屏幕截图显示代码正常工作。您的视图从按钮下方开始向右移动。我假设您希望按钮下方可以看到整个200宽度和高度。如果是这种情况,那么您需要更改此行
sideSubView = SideView(frame: CGRect(x: sender.frame.origin.x ,y: sender.frame.origin.y + 40,width: 200,height: 200))
到
sideSubView = SideView(frame: CGRect(x: sender.frame.origin.x + sender.frame.size.width - 200 , y: sender.frame.origin.y + sender.frame.size.height, width: 200, height: 200))
答案 2 :(得分:0)
它看起来像是导航栏上的按钮,你在控制器的视图中添加了蓝色视图。两个视图都不同,因此两者的点坐标都不同。 您需要将相对坐标传递到蓝色视图的框架。