xamarin.forms - 如何在点击并保持ViewCell时禁用着色/颜色更改?

时间:2016-05-19 18:51:03

标签: xamarin.forms

我已使用以下功能禁用了ViewCells的选择,并且它有效 - ViewCells不再被选中:

'use strict';

    let patterns = [
      {
        'pattern': 'COMPANY:\\s*?([\\w]+)\\s',
        'modifier': ''
      },
      {
        'pattern'  : 'ID:\\s*?(\\d{2})\\s*',
        'modifier' : ''
      },
      {
        'pattern'  : 'EFD:\\s*?(\\d{2})\\s*',
        'modifier' : ''
      }
    ];

let strings = [
  'COMPANY: NAME  ID: 12 SOMETHING: 1010',
  'COMPANY: NAME  ID: 12 SOMETHING: 1010',
  'COMPANY: NAME  ID: 12 SOMETHING: 1010',
  'COMPANY: NAME2 ID: 10 SOMETHING: 1010'
];

    var result = {};
    strings.forEach(function(value, index) {
        var split = value.replace(/ +(?= )/g,'').split(" ");
      var name = split[1];
      var correspondingValue = split[3];
      var efd = split[5];


      if (!(result[name])) {
        result[name] = {};
        result[name][correspondingValue] = {};
        result[name][correspondingValue][efd] = 1;
      } else {
        result[name][correspondingValue][efd]++;
      }

    });

    document.body.innerHTML = JSON.stringify(result);

但是,ViewCells在点击时仍然会以灰色闪烁,如果点击并保持,它们也会变成相同的灰色。

如何禁用此颜色更改?

1 个答案:

答案 0 :(得分:0)

很遗憾,您需要使用渲染器

适用于iOS

[assembly: ExportRenderer(typeof(CardCell), typeof(CardCellRenderer))]
namespace Foo
{
    public class CardCellRenderer : ViewCellRenderer
    {
        public override UITableViewCell GetCell(Cell item, UITableViewCell reusableCell, UITableView tv)
        {
            var cell = base.GetCell(item, reusableCell, tv);
            cell.SelectionStyle = UITableViewCellSelectionStyle.None;
            return cell;
        }
    }
}

更多信息here

我注意到如果您的列表视图使用CachingStrategy="RecycleElement",这可能会导致问题