2017-01-25 34 views
-4

私はこのアイデアが本当に好きなので、私がここに添付した写真と似た外観を持つアプリを開発しようとしています。項目を選択した後SWIFT 3:ドロップダウンリスト/クリップ付きリスト

enter image description here

は、それがドロップダウンし、クリップが

これを実装する方法上の任意のアイデアを再生を開始しますか?私はテーブルやリストを扱うことができますが、実際にこのようなものを実装する方法はわかりません。

enter image description here

答えて

1

あなたは

  1. がindexPath = NSIndexPath(forRow:YourSelectedRow、inSection:0)とする複数の方法でこれを達成することができます

    tableView.insertRowsAtIndexPaths(indexPath, withRowAnimation: .none) 
    
        insert a different row here which will be tricky to manage. 
    
  2. はすべて、このヘッダを作成し、そして選択したセクションの下に1つのセルのみを作成します。

    var selectedSection = -1 
    
        func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? 
        { 
         let view = UIView(frame: CGRect(x: 0, y: 0, width: 320, height: 50) 
         let button = UIButton(frame: view.frame) 
         button.tag = section 
         button.addTarget(self, action: #selector(selectExercise(_:), forControlEvents: UIControlEvents.TouchUpInside) 
        } 
    
        func numberOfSectionsInTableView(tableView: UITableView) -> Int 
        { 
         return 5 
        } 
    
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        { 
         if section == selectedSection 
         { 
          return 1 
         } 
        else 
         { 
          return 0 
        } 
        } 
    
         func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
        { 
           let cell = tableView.dequeueReusableCellWithIdentifier(“YourDetailCell”, forIndexPath: indexPath) as! YourDetailCell 
         return cell 
        } 
    
    fun selectExercise(sender:UIButton) 
        { 
        selectedSection = sender.tag 
        } 
    
  3. 私はオプション2が「最も正しい」である、それはだ道によると言うでしょう、二つのセルを作成し、

    var selectedRow = -1 
    
        func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) 
    { 
         if selectedRow == -1 
        { 
          selectedRow = indexPath.row 
          tblConfirmedServices.reloadRowsAtIndexPaths([indexPath], withRowAnimation: .Bottom) 
         } 
         else 
        { 
          selectedRow = - 1 
         tblConfirmedServices.reloadRowsAtIndexPaths([indexPathPre], withRowAnimation: .Top) 
        }  
        } 
    
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
        { 
        if selectedRow = indexPath.row 
        { 
           let cell = tableView.dequeueReusableCellWithIdentifier(“YourDetailCell”, forIndexPath: indexPath) as! YourDetailCell 
          return cell 
        } 
        else 
        { 
          let cell = tableView.dequeueReusableCellWithIdentifier(“YourCell”, forIndexPath: indexPath) as! YourCell 
          return cell 
        } 
    } 
    
+1

個人的にアニメーションで全セル部とその特定のセルを変更* *働くことになっています。 –

+0

ありがとうございます!私はこれを試してみよう! – FreddyGump

関連する問題