0

UIViewを他のビューに追加せずにiPad画面に表示することは可能ですか?
画面の任意の場所をタップしてタップし続けると、タップ位置にビューが表示され、指を離すとすぐにビューが消えます...
注:ビューにタップジェスチャが追加され、全画面が保持されます

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を追加します。これは非表示にする必要があり、ユーザーが任意の位置に触れると、指の位置に従ってUIViewの位置を設定するだけです。そして、タッチが削除されたら、そのUIViewを非表示にします。

これがお役に立てば幸いです。

ではごきげんよう !!!

于 2013-03-14T12:05:49.010 に答える
0

サブビューに追加せずにフローティングUIViewを表示することは、明らかに不可能です。IOSシステムはそのように設計されています。アプリケーションごとにウィンドウとルートviewControllerがあります。他のすべてのものがこのviewControllerに追加されます。フローティングUIViewのようなものを実現するには、それをサブビューとしてメインビューコントローラに追加して、必要のないときに表示および削除する必要があります。メインビューは、デバイス画面全体をカバーするルートviewControllerのビューになります。ビューにサブビューを追加および削除する方法を知っていると思います。

于 2013-04-16T11:41:37.873 に答える
0

ビューを何かに追加する必要があります。他に方法はありません。

フローティングビューを保持する透明なビューを作成します。アルファ値0.0でフローティングビューを追加します。

次に、透明なビューに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;
}

もちろん、アルファを少しアニメートして、非常に滑らかな効果を出すこともできます。

于 2013-04-16T12:34:45.880 に答える