【问题标题】:Hidden TextView on top of TableView隐藏在 TableView 顶部的 TextView
【发布时间】:2015-08-24 09:45:36
【问题描述】:

我正在创建一个显示 tableView 的应用程序。到现在为止还挺好。

import UIKit

class TableViewController: UITableViewController {

    let content = ["One", "Two", "Three"]

    @IBOutlet var textView: UIView!

    override func viewDidLoad() {
        super.viewDidLoad()

    extView = tableView.tableHeaderView
    self.tableView.tableHeaderView = nil

    }

    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.content.count
    }

    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = UITableViewCell(style: UITableViewCellStyle.Default, reuseIdentifier: "Cell")
        cell.textLabel?.text = content[indexPath.row]
        return cell
    }

    override func scrollViewWillBeginDragging(scrollView: UIScrollView) {

        tableView.tableHeaderView = textView

    }
}

Main.storyboard

模拟器

我想要实现的是:

  • TableView之上添加一个View
  • View 中添加带有一些文本的 TextView

我可以做到。但我希望 ViewController 仅加载显示表格,并且当用户向下滚动时出现 TexView。就像隐藏的表头一样。

【问题讨论】:

  • 您将表格的 y 位置设置为 64。因为导航栏高度为 64。

标签: ios uitableview uitextview swift2


【解决方案1】:
override func scrollViewWillEndDragging(scrollView: UIScrollView, withVelocity velocity: CGPoint, targetContentOffset: UnsafeMutablePointer<CGPoint>) {

        if(velocity.y>0){
            NSLog("dragging Up");
        }else{
            NSLog("dragging Down");
        }

    }

【讨论】:

  • 在这个方法中编写你的代码。但是此方法将同时调用向下滚动和向上滚动。因此,您需要检测向下滚动自定义。
  • 我已经更新了我的代码。你是这个意思吗?当我滚动视图时突然出现。我希望它开始向下滚动。就像它被隐藏了一样。
  • 好的,它正在工作。谢谢你。如何为文本添加一种效果,使其在文本出现时具有更少的不透明度?
  • 等一下!当您希望文本视图作为 tableview 的其他单元格向下滚动时,这不是程序。正确的方法是在表格视图的 0 索引单元格中添加文本视图。或在表格视图的 0 部分添加文本视图,在第 1 部分添加另一个“一”、“二”...
  • 嗯。你能举个例子吗?如何强制表格从 1 个单元格开始并隐藏 0 个单元格?
【解决方案2】:

是的,您可以通过以下方式进行操作。如果总行数足以滚动,它将起作用(例如 tableheight=rowHeighttotalRow' 它不起作用。要进行此操作,您需要很棘手。如果(tableheight>=rowHeighttotalRow){ tableheight = rowHeight*totalRow-fisrtRowHeight }

    override func viewWillAppear(animated: Bool) {
    if(objects.count>1){
        let indexPathStart = NSIndexPath(forRow: 1, inSection: 0)
        self.tableView.scrollToRowAtIndexPath(indexPathStart, atScrollPosition:UITableViewScrollPosition.Top, animated: false)
    }
}

【讨论】:

    猜你喜欢
    • 2012-08-20
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多