相关疑难解决方法(0)

而不是UICollectionView显示黑屏

我正在尝试重新实现这里UICollectionView看到的不定式滚动.对我来说遗失的东西:

ViewController.h:

@interface ViewController : UIViewController<UICollectionViewDataSource, UICollectionViewDelegate>

@end
Run Code Online (Sandbox Code Playgroud)

DataCell.h:

@interface DataCell : UICollectionViewCell
@property (nonatomic, strong) UILabel *label;
@end
Run Code Online (Sandbox Code Playgroud)

DataCell.m:

#import "DataCell.h"

@implementation DataCell

-(instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if(self){
        self.label = [[UILabel alloc] initWithFrame:self.bounds];
        self.autoresizesSubviews = YES;
        self.label.autoresizingMask = (UIViewAutoresizingFlexibleWidth |
                                       UIViewAutoresizingFlexibleHeight);
        self.label.textAlignment = NSTextAlignmentCenter;
        self.label.adjustsFontSizeToFitWidth = YES;

        [self addSubview:self.label];
    }

    return self;
}

@end
Run Code Online (Sandbox Code Playgroud)

CustomCollectionView.h:

@interface CustomCollectionView : UICollectionView

@end
Run Code Online (Sandbox Code Playgroud)

对于整个项目,我使用了故事板和法线UIViewController.在这个视图控制器上,我UICollectionView在Interface Builder中添加了一个.我将集合视图中的插座与视图控制器连接起来,并设置数据源并再次将方法委托给我的视图控制器.我还在UICollectionViewCellInterface Builder中设置了自定义类和重用标识符.

所以一切都应该工作,但我只得到一个黑屏.我错过了什么?您可以在此处 …

objective-c interface-builder ios infinite-scroll uicollectionview

24
推荐指数
2
解决办法
1万
查看次数

UICollectionView在两个方向上滚动

我做了UICollectionView一个垂直滚动.

单元格的宽度大于屏幕宽度,因此我创建了一个customFlowLayout基于UICollectionViewFlow布局的方法,返回正确的计算内容大小.

但是,这不起作用.当单元格的宽度小于屏幕宽度时,它可以工作.这是否意味着在垂直滚动中我们的宽度不能超过屏幕宽度?

水平滚动也是一样,但是高度CollectionView限制在屏幕高度.

有没有办法使它工作?

scroll ios uicollectionview uicollectionviewlayout

20
推荐指数
2
解决办法
3万
查看次数

在UICollectionView中创建到indexPath的慢速滚动

我正在开发一个项目,我正在使用UICollectionView创建一个'图像自动收报机',我正在宣传一系列徽标.collectionView是一个项目高和十二个项目长,并一次显示两到三个项目(取决于可见的徽标的大小).

我想从第一个项目到最后一个项目进行慢速自动滚动动画,然后重复.

有没有人能够做到这一点?我可以使用滚动工作

[myCollection scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:(myImages.count -1) inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:YES];
Run Code Online (Sandbox Code Playgroud)

但这太快了!

[UIView animateWithDuration:10 delay:2 options:(UIViewAnimationOptionAutoreverse + UIViewAnimationOptionRepeat) animations:^{
    [myCollection scrollToItemAtIndexPath:[NSIndexPath indexPathForRow:(myImages.count -1) inSection:0] atScrollPosition:UICollectionViewScrollPositionRight animated:NO];
} completion:nil];
Run Code Online (Sandbox Code Playgroud)

这产生了所需的滚动速度,但只有最后几个单元格在系列中可见.我怀疑它们(甚至是起始的可见细胞)都会立即出现.

有什么想法吗?

scroll nsindexpath uiviewanimation ios uicollectionview

19
推荐指数
4
解决办法
2万
查看次数

UICollectionView:如何定义支持水平和垂直滚动的UICollectionViewLayout?

目前我正在尝试创建一个UICollectionView,应该显示一个简单的excel-like-spreadsheet,用rowscolumns.UICollectionViews我相信,这应该是一件容易的事.而且我真的想要实现UICollectionView,而不是任何grid framework.

但此刻我暂停了一下.我已经想通了,我好遗憾的是不能使用UICollectionViewDelegateFlowLayout的,因为这仅支持scrolling任一 horizontallyvertically方向.但我需要scrolling双向.

因此我必须使用一个UICollectionViewLayout,但为此我没有找到好的例子,如何使用它.你有没有一个例子,如何子类化UICollectionViewLayout支持rowscolumns

提前致谢.

objective-c ios6 uicollectionview uicollectionviewdelegate

18
推荐指数
2
解决办法
3万
查看次数

UICollectionView无限滚动:重用索引路径并清除内容

使用前一个问题的答案,我做了一个无限卷轴.但是,滚动时我遇到了问题.

似乎在一毫秒内,UICollectionView(或者可能UIScrollView就此而言)认为所显示的细胞不再可见,因此将细胞重新用于新细胞.这导致在滚动时双重使用单元格.我相信这是我的问题的原因是因为"欺骗"使用,以便能够无限滚动是重置contentOffsetUIScollView.

我的单元格UICollectionView包含一个背景图像,它使用异步下载(从缓存中取出)MKNetworkKit.另一个副作用是当连续滚动视图"屏幕长度"时,屏幕会被截断.几乎就像在reloadData中发生了一样UIScrollView,但代码根本没有重新加载数据.

我的问题是:如何防止UICollectionView重复使用可见细胞和突然截断视图?

cocoa-touch objective-c uiscrollview ios uicollectionview

8
推荐指数
1
解决办法
1705
查看次数

UICollectionView具有无限滚动?

我正在尝试实现具有无限滚动行为的集合视图。滚动应该是圆形的UIPickerView。可以使用Apple的UICollectionView显示器完成吗,还是别无选择,只能创建一个水平PickerView?

你怎么看?

uiscrollview uipickerview ios uicollectionview

6
推荐指数
1
解决办法
1万
查看次数

UICollectionView收到了一个索引路径不存在的单元格的布局属性

我使用UICollection视图来显示网格布局中的项目.

对于数据源,我使用5*5维数组.

而且我在section中为numberOfItems返回5,为numberOfSections返回5.

然后我的应用程序也崩溃了以下错误:

'UICollectionView收到了一个不存在索引路径的单元格的布局属性:{length = 2,path = 0 - 5}'

//////===viewcontroller.m==///////
- (void)viewDidLoad {
    self.theData = @[@[@"1",@"2",@"3",@"4",@"5"], @[@"6",@"7",@"8",@"9",@"10"],@[@"11",@"12",@"13",@"14",@"15"],@[@"16",@"17",@"18",@"19",@"20"],@[@"21",@"22",@"23",@"24",@"25"]];
    MultpleLineLayout *layout = [[MultpleLineLayout alloc] init];
    self.collectionView.collectionViewLayout = layout;
    self.collectionView.showsHorizontalScrollIndicator = NO;
    self.collectionView.showsVerticalScrollIndicator = NO;
    layout.scrollDirection = UICollectionViewScrollDirectionHorizontal;
    self.view.backgroundColor = [UIColor blackColor];
    [self.collectionView registerClass:[DataCell class] forCellWithReuseIdentifier:@"DataCell"];
    [self.collectionView reloadData];
}


- (NSInteger)collectionView:(UICollectionView *)view numberOfItemsInSection:(NSInteger)section
{
    return 5;

}

- (NSInteger)numberOfSectionsInCollectionView: (UICollectionView *)collectionView {
    return 5;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView  cellForItemAtIndexPath:(NSIndexPath *)indexPath {

    DataCell *cell = [collectionView  dequeueReusableCellWithReuseIdentifier:@"DataCell" forIndexPath:indexPath];
    cell.label.text = self.theData[indexPath.section …
Run Code Online (Sandbox Code Playgroud)

objective-c ios uicollectionview uicollectionviewcell

3
推荐指数
2
解决办法
1万
查看次数