- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
所以我实现了一个具有搜索功能和 sectionIndexTitles
的适当 TableView
。现在,我正在尝试实现一个 UICollectionView
,到目前为止它一直在工作,只是我不能轻易地拥有 sectionIndexTitles
(右侧滚动条)。
如果我查看 Facebook 应用程序,它看起来像一个 UICollectionView
,但确实有 sectionIndexTitles
和一个搜索栏。我似乎无法为 UICollectionView
模型找到这样的函数。
有什么想法吗?!
谢谢!
最佳答案
我有类似的要求(对于水平 Collection View )并最终自己构建了一个索引 View 子类。
我计划将其开源,但可能要等到下个月,所以这里有一个帮助您入门的 stub :
YMCollectionIndexView.h
@interface YMCollectionIndexView : UIControl
- (id) initWithFrame:(CGRect)frame indexTitles:(NSArray *)indexTitles;
// Model
@property (strong, nonatomic) NSArray *indexTitles; // NSString
@property (readonly, nonatomic) NSUInteger currentIndex;
- (NSString *)currentIndexTitle;
@end
YMCollectionIndexView.m
#import "YMCollectionIndexView.h"
@interface YMCollectionIndexView ()
@property (readwrite, nonatomic) NSUInteger currentIndex;
@property (strong, nonatomic) NSArray *indexLabels;
@end
@implementation YMCollectionIndexView
- (id) initWithFrame:(CGRect)frame indexTitles:(NSArray *)indexTitles {
self = [super initWithFrame:frame];
if (self) {
self.indexTitles = indexTitles;
self.currentIndex = 0;
// add pan recognizer
}
return self;
}
- (void)setIndexTitles:(NSArray *)indexTitles {
if (_indexTitles == indexTitles) return;
_indexTitles = indexTitles;
[self.indexLabels makeObjectsPerformSelector:@selector(removeFromSuperview)];
[self buildIndexLabels];
}
- (NSString *)currentIndexTitle {
return self.indexTitles[self.currentIndex];
}
#pragma mark - Subviews
- (void) buildIndexLabels {
CGFloat cumulativeItemWidth = 0.0; // or height in your (vertical) case
for (NSString *indexTitle in self.indexTitles) {
// build and add label
// add tap recognizer
}
self.indexLabels = indexLabels;
}
#pragma mark - Gestures
- (void) handleTap:(UITapGestureRecognizer*)recognizer {
NSString *indexTitle = ((UILabel *)recognizer.view).text;
self.currentIndex = [self.indexTitles indexOfObject:indexTitle];
[self sendActionsForControlEvents:UIControlEventTouchUpInside];
}
// similarly for pan recognizer
@end
在您的 View Controller 中:
- (void)viewDidLoad {
[super viewDidLoad];
[self.collectionIndexView addTarget:self action:@selector(indexWasTapped:) forControlEvents:UIControlEventTouchUpInside];
// similarly for pan recognizer
}
- (void)indexWasTapped:(id)sender {
[self.collectionView scrollToIndexPath:...];
}
// similarly for pan recognizer
关于ios - UICollectionView 的 SectionIndexTitles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13882052/
我有一个按字母顺序排序的带有部分的 SwiftUI 列表。我尝试设置一个跳转菜单/侧边栏来滚动浏览各个部分,如下所示: 在 UIKit 中,可以通过设置 sectionIndexTitles 来实现。
我有俄语艺术家的数据库。 以下方法显示正确的俄语字母 - (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:
所以我实现了一个具有搜索功能和 sectionIndexTitles 的适当 TableView。现在,我正在尝试实现一个 UICollectionView,到目前为止它一直在工作,只是我不能轻易地拥
我已经用 google 搜索了大约 2 天来解决我的问题。但我找不到任何与我的问题相匹配的解决方案。我的问题是我想为 UITableView 制作一个自定义的SectionIndexTitle,如下图
这是我的代码,我曾经使用 sectionIndexTitlesForTableView 显示名称数组。排序是使用数组中的第二个名称。它只显示字母表,我需要显示最后一个(即第二个)名称为空)作为哈希符号
我正在使用一组人名来加载表格。我想根据每个人的居住州分开这些部分,同时将 sectionIndexTitles 限制为州名的第一个字母。我的 sectionIndexTitles 将是 ["A"、"C
我有一个 UISplitViewController,我用 UIViewController 替换了其中的 UITableView。这个 ViewController 包含一个 UITableView
UITableView 的部分索引在 iOS 7 上压缩,即使有足够的空间(这发生在 iPad 上)。在 iOS 6 上一切正常: 这只发生在风景中。 UITableView 位于容器 View 内,
我有一个核心数据实体“人”。我需要自定义部分索引标题,所以我想到创建 transient 属性,根据我自己的逻辑将数据分成一些特定的部分。但是,当我使用 fetchedResultsControlle
在我的带有 tableView 的 viewController 中,我有使用 fetchedResultsController 从核心数据数据库中获取的对象列表。我按部分对所有获取的结果进行了分组。
我是一名优秀的程序员,十分优秀!