尝试将它们设置为UITableView的边框时,一些不需要的UIImageViews会消失

时间:2016-07-21 05:21:57

标签: ios uitableview uiimageview

我要做的是用小点替换边框(默认情况下是实线)。我希望点的大小为6乘6。

使边界不可见是一件简单的事情;我只是将分隔符设置为'无'在属性检查器中。

但是没有字段可以将图像或其他对象设置为分隔符。为了解决这个问题,我将点分成上下两块,在UIImageViews中分配它们,并将上面的一个放在底部,将下面的一个放在顶部。

然后在函数tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath)中,我得到了第一行中的下图像,而最后一行中的上图像不可见。

问题在于一些不需要的点消失了,而我打算改变的点正确地消失了。此外,当tableView滚动时,它们会返回或消失。代码和屏幕截图如下。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cellIdentifier = "reuseIdentifier"
    let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! MyListTableViewCell

    //each element in datas[] has lowercase alphabets, a from q.
    let array = datas[indexPath.row]

    //data is a UIButton, which is the only component in each row besided those dots
    cell.data.setTitle(array, forState: .Normal)

    //this is where I typed to handle the unwanted dots on the very top and bottom
    if indexPath.row == 0{
        cell.lowerHalf.hidden = true
    }
    else if indexPath.row == datas.count - 1{
        cell.upperHalf.hidden = true
    }
    ///////////////////

    return cell
} 

enter image description here

当我向上和向下滚动tableView时,它改为:

enter image description here

什么使不应该消失的点消失?或者他们是将图像设置为边界的更好方法?

+在iSashok建议的方式中,不幸的是事情并没有改变。我在申报后立即申请了这段代码;然后我在返回声明之前移动到了右边。两者都不起作用。

cell.clipsToBound = false

3 个答案:

答案 0 :(得分:2)

尝试修改

中的单元格clipsToBounds属性
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

如下所示

cell.clipsToBounds = false;

contentView相同的

cell.contentView.clipsToBounds = false;

答案 1 :(得分:2)

您的手机正在重复使用,因此您需要更改if这样的cellForRowAtIndexPath条件

if indexPath.row == 0 {
    cell.lowerHalf.hidden = true
    cell.upperHalf.hidden = false
}
else if indexPath.row == datas.count - 1{
    cell.lowerHalf.hidden = false
    cell.upperHalf.hidden = true
}
else {
    cell.lowerHalf.hidden = false
    cell.upperHalf.hidden = false
}

答案 2 :(得分:1)

为什么不使用 UITableViewHeaderFooterView ?只需在中心创建包含该点图像的视图,然后从 viewForFooterInSection返回该视图。