IOS 7.1 UICollectionView无法识别拖动的完整点击区域

时间:2015-06-21 04:20:15

标签: ios xamarin xamarin.ios

我有一个带

的UICollectionView
  1. 显示水平行中项目的自定义布局
  2. 自定义UICollectionViewCell,其中包含许多子视图 - 图像 和一些标签。
  3. UICollectionView的多个实例在UITableView中垂直显示。

    在iOS 8.1上,一切正常。在iOS 7.1上测试虽然我无法拖动集合,除非我的手指位于行的前三分之一(由图片中的黄色矩形表示)。

    请注意,UITableView可以垂直滚动。

    有什么建议吗?

    提前致谢,并为C#道歉。

    // The Layout
    public sealed class SingleRowLayout : UICollectionViewFlowLayout
        {
            public SingleRowLayout()
            {
                this.ItemSize = new CGSize(50, 120); // 120 is the full cell height
                this.ScrollDirection = UICollectionViewScrollDirection.Horizontal;
            }
        }
    
    
    // The UICollectionViewCell
    
    public sealed class StickerViewCell : UICollectionViewCell
    {
    
        [Export ("initWithFrame:")]
        public StickerViewCell (CGRect frame) : base (frame)
        {
            var top = 0f;
            this.imageView = new UIImageView();
            this.imageView.ContentMode = UIViewContentMode.ScaleAspectFit;
            this.imageView.Frame = new CGRect(
                new CGPoint(GridDimensions.ImageInternalSidePadding, top),
                new CGSize(GridDimensions.StickerWidth - (GridDimensions.ImageInternalSidePadding * 2), GridDimensions.StickerHeight)
            );
    
            top = (float)this.imageView.Frame.Height
            this.sequenceTextView = this.createTextView(ref top);
            this.dateTextView = this.createTextView(ref top);
            this.sensationTextView = this.createTextView(ref top);
    
            ContentView.AddSubview(this.imageView);
            ContentView.AddSubview(this.sequenceTextView);
            ContentView.AddSubview(this.sensationTextView);
            ContentView.AddSubview(this.dateTextView);
    
        }
    
        private UILabel createTextView(ref float top)
        {
            var result = new UILabel();
            result.AdjustsFontSizeToFitWidth = true;
    
            result.Frame = new CGRect(
                new CGPoint(2, top),
                new CGSize(GridDimensions.StickerWidth - (2 * 2), GridDimensions.TextHeight)
            );
            top += GridDimensions.TextHeight + GridDimensions.TextFieldSpacing;
            return result;
        }
    
    }
    

    Black background is UICollectionView

0 个答案:

没有答案