0

是否可以在 iPad 屏幕上显示 UIView 而无需将其添加到任何其他视图?
当我点击并保持点击屏幕上的任意位置时,视图应该出现在点击位置上,一旦我抬起手指,视图应该消失......
注意:点击手势被添加到视图保持全屏

4

5 回答 5

1

除非它是其他视图的子视图,否则您无法显示视图。这就是 iOS 系统的工作方式——它是视图的层次结构。如果你愿意,你可以将你的视图添加到 UIWindow,这是你的应用程序的最顶层视图。

于 2013-03-14T12:16:05.203 回答
1

我认为这是在屏幕上显示浮动 UIView 的最简单方法。

import UIKit

class ViewController: UIViewController {
    
    @IBOutlet weak var remoteVideoView: UIView!
    override func viewDidLoad() {
        super.viewDidLoad()
        
        let gesture = UIPanGestureRecognizer(target: self, action: #selector(ViewController.handleGesture(_:)))
        remoteVideoView.addGestureRecognizer(gesture)
        remoteVideoView.isUserInteractionEnabled = true
        
}
    
    
    @objc func handleGesture(_ gesture: UIPanGestureRecognizer) {
        // handling code
        let translation = gesture.translation(in: self.view)
        let remoteVideoView = gesture.view!
        remoteVideoView.center = CGPoint(x: remoteVideoView.center.x + translation.x, y: remoteVideoView.center.y + translation.y )
        gesture.setTranslation(CGPoint.zero, in: self.view)
    }
    
}
于 2022-01-06T05:14:14.690 回答
0

在不添加任何子视图的情况下显示浮动 UIView显然是不可能的。IOS系统就是这样设计的。每个应用程序都有一个Window 和一个根 viewController。其他所有内容都添加到此viewController中。要实现浮动 UIView之类的功能,您必须将其作为子视图添加到主视图控制器中,以便在不需要时显示和删除它。您的主视图将是覆盖整个设备屏幕的根viewController 的视图。我假设您知道如何在视图中添加和删除子视图。

于 2013-04-16T11:41:37.873 回答
0

默认情况下添加 UIView 并且它应该被隐藏,当用户触摸任何位置时,只需根据您的手指位置设置您的 UIView 位置。当触摸被移除时,只需隐藏那个 UIView。

希望这会帮助你。

一切顺利 !!!

于 2013-03-14T12:05:49.010 回答
0

你必须将你的观点添加到某些东西上。没有其他办法了。

制作一个透明的视图来容纳您的浮动视图。使用 0.0 的 alpha 向其添加浮动视图。

然后在透明视图上实现 touchesBegan:

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event  {
    NSLog(@"touches began");
    myFloatingView.alpha = 1.0;
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event  {
    NSLog(@"touches began");
    myFloatingView.alpha = 0.0;
}

当然,您需要对 alpha 进行一点动画处理,以获得非常流畅的效果。

于 2013-04-16T12:34:45.880 回答