我有一个UITableView与不同高度的单元格,我需要知道它们何时完全可见.
目前,我循环遍历可见单元格列表中的每个单元格,以检查每次滚动视图时它是否完全可见.这是最好的方法吗?
这是我的代码:
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView {
CGPoint offset = aScrollView.contentOffset;
CGRect bounds = aScrollView.bounds;
NSArray* cells = myTableView.visibleCells;
for (MyCustomUITableViewCell* cell in cells) {
if (cell.frame.origin.y > offset.y &&
cell.frame.origin.y + cell.frame.size.height < offset.y + bounds.size.height) {
[cell notifyCompletelyVisible];
}
else {
[cell notifyNotCompletelyVisible];
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:
请注意* - (NSArray )visibleCells返回可见单元格,这些单元格完全可见且部分可见.
编辑2:
这是在结合lnafziger和Vadim Yelagin的解决方案后的修订代码:
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView {
NSArray* cells = myTableView.visibleCells;
NSArray* indexPaths = myTableView.indexPathsForVisibleRows;
NSUInteger cellCount = [cells count]; …Run Code Online (Sandbox Code Playgroud) 我可以使用http://forums.macrumors.com/showthread.php?t=545061中找到的线程中描述的技术设计自定义UITableViewCells并加载它们.但是,使用该方法不再允许您使用reuseIdentifier初始化单元格,这意味着您必须在每次调用时创建每个单元格的全新实例.有没有人想出一个很好的方法来缓存特定的单元格类型以便重用,但仍然可以在Interface Builder中设计它们?
我有一个uitableview,在每个单元格中加载相当大的图像,并且单元格高度根据图像的大小而变化.滚动表现不错,但有时可能会生涩.
我在FieryRobot博客上找到了这些提示:
有没有人有任何提高uitableview滚动性能的技巧?
希望这将是一个快速解决方案.我一直试图弄清楚我一直在犯的错误.下面列出了错误,并且appdelagate低于该错误.
任何帮助表示赞赏.
谢谢
2012-04-12 21:11:52.669 Chanda [75100:f803] ---断言失败
-[UITableView _endCellAnimationsWithContext:],/SourceCache/UIKit_Sim/UIKit-1914.84/UITableView.m:10372012-04-12 21:11:52.671 Chanda [75100:f803] ---由于未被捕获的异常终止app'NSInternalInconsistencyException' ,原因:'无效更新:第0节中的行数无效.更新后的现有部分中包含的行数(2)必须等于更新前该部分中包含的行数(2),再加上或减去从该部分插入或删除的行数(插入1个,删除0个),加上或减去移入或移出该部分的行数(0移入,0移出).
#import "AppDelegate.h"
@implementation AppDelegate
@synthesize window = _window;
@synthesize databaseName,databasePath;
- (BOOL)application: (UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions {
self.databaseName = @"Customers.db";
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir = [documentPaths objectAtIndex:0];
self.databasePath = [documentDir stringByAppendingPathComponent:self.databaseName];
[self createAndCheckDatabase];
return YES;
}
- (void)createAndCheckDatabase {
BOOL success;
NSFileManager *fileManager = [NSFileManager defaultManager];
success = [fileManager fileExistsAtPath:databasePath];
if (success) return;
NSString *databasePathFromApp …Run Code Online (Sandbox Code Playgroud) 我意识到iOS 7还没有正式发布,我们不应该讨论它,但我会疯狂地试图找出这个问题.在iOS 6上,我的表视图是透明的,看起来很棒.第一次运行iOS 7,背景为白色.
我已经尝试将表backgroundColor,单元格颜色等制作成UIColor clearColor但没有变化.
如何解决这个问题?

我正在开发一个使用SQLite的应用程序.我想使用分页机制显示用户列表(UITableView).任何人都可以告诉我当用户滚动到列表末尾时如何在我的列表中加载更多数据(比如在Facebook应用程序的主页上)?
我发现这UICollectionView就像UITableView在iOS6 中引入的升级版本,但我什么时候应该选择UICollectionView而不是UITableView?
仍然有应用程序使用UITableView,如果UICollectionView可以做任何UITableView事情,为什么人们还在使用UITableView?就性能而言是否存在差异?
谢谢!
我是iOS开发新手.我想在选中UITableViewCell时添加一个复选标记.选中另一行时,应删除复选标记.我该怎么做?
我正在展示一个UITableViewController类的模态视图.出于某种原因,当我显示它时,它不会显示导航栏.这是我的代码:
SettingsCreateAccount *detailViewController = [[SettingsCreateAccount alloc] initWithStyle:UITableViewStyleGrouped];
detailViewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
detailViewController.navigationController.navigationBarHidden = NO;
[self.navigationController presentModalViewController:detailViewController animated:YES];
detailViewController = nil;
[detailViewController release];
Run Code Online (Sandbox Code Playgroud)
我以为它是默认显示的?如果它有帮助,我从另一个同样UITableViewController由a管理的类中调用它UINavigationController.想法?
我正在尝试配置深灰色分色器.为什么以下什么都不做?
self.tableView.seperatorStyle = UITableViewCellSeperatorStyleSingleLine;
self.tableView.seperatorColor = [UIColor colorWithRed: 127 green:127 blue:127 alpha:1];
Run Code Online (Sandbox Code Playgroud)
返回一个没有分隔符的表.
一旦我使用[UIColor blackColor],我就会得到分离器.这是怎么回事?
uitableview ×10
ios ×9
iphone ×5
objective-c ×3
cocoa-touch ×2
crash ×1
ios4 ×1
pagination ×1
scroll ×1
uiimage ×1
visible ×1