2017-12-02 24 views
0

現在、サムネイルはUITableViewCellで表示されています。セルをタップすると、画像を閉じてtableViewを表示するために、右上に十字ボタンが表示されます。 didSelectRowに次のコードがあります。tableViewCellをタップするとUIImageViewを前面に表示する方法は?

let hoverImage = UIImageView() 
    hoverImage.image = UIImage(named: "splashpt") 
    hoverImage.contentMode = .scaleAspectFit 
    self.view.addSubview(hoverImage) 
    hoverImage.center = self.view.center 
    hoverImage.layer.zPosition = 5 
    self.view.bringSubview(toFront: hoverImage) 

まだ画像が表示されません。私はコードのこの部分をデバッグして実行することができるので、計算はこのコードのセクションに当てはまります。しかし、何も画面に表示されません。私はzPositionbringSubview(toFront:)を使用していますが、どちらも私の要求に対応していないようです。どんな助けでも大歓迎です。ありがとうございました。

+0

あなたは、ImageViewのためのフレームを設定するフレームを設定してみませんでした。 –

+1

@as diu画像をポップアップ表示するには、テーブルビューで表示しますか? – Niroj

+0

@Nirojはい、ピンチズーム付きのポップ画像と画像を閉じるxボタンが必要です。それが私が達成しようとしていることです。 –

答えて

1

これはデモ・テーブル・ビューです。テーブル・ビュー・セルをタップすると、ビューにクローズ・ボタンがポップアップ表示されます。閉じるボタンを押すと、ポップアップ表示が閉じます。

import UIKit 

class ViewController: UITableViewController { 

override func viewDidLoad() { 
    super.viewDidLoad() 


    // Do any additional setup after loading the view, typically from a nib. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 


override func numberOfSectionsInTableView(tableView: UITableView) -> Int { 
    return 1 
} 

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return 5 
} 

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { 
    let cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell")! as UITableViewCell 

    cell.textLabel?.text = "Happy" 
    return cell 
} 

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { 
    print("Cell\(indexPath.row) is selected") 



    let storyBoard = UIStoryboard(name: "Main", bundle: nil) 
    let popoverVC = storyBoard.instantiateViewControllerWithIdentifier("PopViewController") as! PopViewController 
    popoverVC.delegate = parentViewController as? InfoViewDelegate 
    let nav = UINavigationController(rootViewController: popoverVC) 
    nav.modalPresentationStyle = UIModalPresentationStyle.Popover 
    nav.navigationBar.hidden = true 
    self.presentViewController(nav, animated: true) 
    { 

    } 
    popoverVC.passingViewController = self 

} 
} 

これはPopUpViewControllerです:

import UIKit 
protocol InfoViewDelegate: class 
{ 
func infoViewClicked(tag: Int) 
} 

class PopViewController :UIViewController 
{ 

@IBOutlet weak var btnClose: UIButton! 
var delegate = InfoViewDelegate?() 
var passingViewController: UIViewController! 
override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view. 
} 

override func didReceiveMemoryWarning() { 
    super.didReceiveMemoryWarning() 
    // Dispose of any resources that can be recreated. 
} 

override func viewWillAppear(animated: Bool) { 
} 

override func viewDidDisappear(animated: Bool) { 
    self.presentingViewController?.dismissViewControllerAnimated(true 
     , completion: { 
    }) 
} 
/* 
// MARK: - Navigation 

// In a storyboard-based application, you will often want to do a little preparation before navigation 
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
// Get the new view controller using segue.destinationViewController. 
// Pass the selected object to the new view controller. 
} 
*/ 
@IBAction func btnClicked(sender: UIButton) { 
    if(sender == self.btnClose) 
    { 
     self.delegate?.infoViewClicked(1) 
     self.presentingViewController?.dismissViewControllerAnimated(true 
      , completion: { 
     }) 
    } 

} 

} 

A table view

A simple view for Image

+0

この回答は、私が探していたものに最適でした。ありがとうございました@Niroj –

+0

問題はありません:) :) – Niroj

+0

あなたはより多くの可視性のために質問をしてください。ありがとう@ニロイ –

関連する問題