Je veux afficher une petite vue popup (juste comme la vue popup dans ipad, mais je veux ici dans iPhone) sur iPhone avec image. P>
Comment puis-je faire ça? p>
3 Réponses :
Vous pouvez prendre uIView de manière dynamique, puis ajouter uiImageView dans cet uIVIVIEW Tout comme celui-ci
UIView *tmpView = [[UIView alloc] initWithFrame:CGRectMake(XPosition, YPosition, Width, Height)]; UIImage *tmpImg = [UIImage imageNamed:@"YourImageName.png"]; UIImageView *tmpImgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, tmpImg.size.width, tmpImg.size.height)]; tmpImgView.image = tmpImg; [self.view addSubview:tmpView];
Mais cela ne donnera pas le même effet que PopoverView donne dans iPad. Je veux le même effet sur iPhone!
@devang vous apprécieriez certainement cela http://iosdevelopertaps.com/open-source/ios-open-source-popover-api-for-iphone-wepopover.html p>
L'autre approche est ce que Mehul a suggéré. Faites-nous savoir si vous rencontrez quelque chose qui correspond à UIPOPOVER dans iPad. P>
Joli lien. Mais cela ne permettra que le texte ne pas l'image. Je veux afficher l'image.
CollectionView peut être contextuel à l'écran. Vous trouverez ci-dessous un code complet pour afficher la collectionView comme fenêtre contextuelle et masquant la fenêtre contextuelle
import UIKit class ViewController: UIViewController , UICollectionViewDataSource, UICollectionViewDelegate { //let popView = UICollectionView.init(frame: CGRect(x:8,y:30,width:304,height:200)) var demoCollectionView:UICollectionView? = nil; @IBOutlet var button: UIButton! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. self.loadColorCollectionView() } func loadColorCollectionView() { let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() layout.sectionInset = UIEdgeInsets(top: 20, left: 10, bottom: 10, right: 10) layout.itemSize = CGSize(width: 30, height: 30) demoCollectionView = UICollectionView(frame: CGRect(x:8,y:20,width:304,height:200), collectionViewLayout: layout) demoCollectionView?.dataSource = self demoCollectionView?.delegate = self demoCollectionView?.register(UICollectionViewCell.self, forCellWithReuseIdentifier: "Cell") demoCollectionView?.backgroundColor = UIColor.white } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func numberOfSections(in collectionView: UICollectionView) -> Int { return 1; } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 200; } func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "Cell", for: indexPath); if indexPath.row%2 == 0 { cell.backgroundColor = UIColor.red; } else{ cell.backgroundColor = UIColor.blue; } return cell; } func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { guard let statusBar = UIApplication.shared.value(forKeyPath: "statusBarWindow.statusBar") as? UIView else { return } if indexPath.row%2 == 0 { statusBar.backgroundColor = UIColor.red; } else{ statusBar.backgroundColor = UIColor.blue; } self.demoCollectionView?.removeFromSuperview() } @IBAction func showMessage() { //popView.backgroundColor = UIColor.darkGray; //self.view.addSubview(popView) self.view.addSubview(demoCollectionView!) } override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { //self.popView.removeFromSuperview() self.demoCollectionView?.removeFromSuperview() } }
Dupliquer possible de votre question précédente: Comment implémenter une vue popup modale dans iPad? Comme écran Facebook en utilisant Sharekit?
@Josh: Hey je demande un effet de ponpé dans iPhone avec une image, y compris l'intérieur. Pas pour modalpresentview.