如何根据swift中的UIButton位置添加自定义视图?
我正在尝试添加按钮操作的自定义视图。自定义视图已成功添加,但未正确显示如何根据swift中的UIButton位置添加自定义视图?,swift,swift3,uiview,Swift,Swift3,Uiview,我正在尝试添加按钮操作的自定义视图。自定义视图已成功添加,但未正确显示 @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)
@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
谢谢,请用这个
sideSubView = SideView(frame: CGRect(x: sender.frame.origin.x - 200 ,y: sender.frame.origin.y + 40,width: 200,height: 200))
屏幕截图显示了代码正常工作。您的视图从按钮下方开始并向右移动。我假设你想在按钮下看到整个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))