我正在尝试更新UICollectionView的单个单元格,具体UICollectionView ,我只是试图更新由cell.imageView引爆的特定单元格中的图像。 [self.collectionView reloadData]不是一个真正的select,因为它使整个集合视图闪光。 [self.collectionView beginUpdates]不是[self.collectionView beginUpdates]的东西。 我知道我可以使用: [self.collectionView performBatchUpdates:^{ //do something } completion:nil]; 我不完全确定要在完成块中放置什么来更新某个单元格的imageView 。 这一切都是在didSelectItemAtIndexPath内部完成的。我也没有使用NSFetchedResultsController 。 有任何想法吗?
在我的UITableView有时单元格保持选中后触摸。 因为它只是偶尔发生,所以我不能重现这个问题。 任何提示? 也许这与不正确的释放tableView有关吗? – (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{ NSUInteger row = [indexPath row]; [tableView deselectRowAtIndexPath:indexPath animated:YES]; switch (row) { case 0: FruitViewController *fruitController = [FruitViewController alloc]; [fruitController retain]; [fruitController initWithNibName:@"FruitView" bundle:[NSBundle mainBundle]]; [self.navigationController pushViewController:fruitController animated:YES]; [fruitController release]; break; case 1: CerealsViewController *cerealsController = [CerealsViewController alloc]; [cerealsController retain]; [cerealsController initWithNibName:@"CerealsView" bundle:[NSBundle mainBundle]]; [self.navigationController pushViewController:cerealsController animated:YES]; […]
我正在使用新的xcode 4.5,我有一些视图控制器上的代码行: DiscoverCell* cell=[table dequeueReusableCellWithIdentifier:@"DiscoverCell"]; if(cell==nil){ NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"DiscoverCell" owner:self options:nil]; cell = [nib objectAtIndex:0]; } 当我运行应用程序其抛出:终止应用程序由于未捕获的exception'NSInternalInconsistencyException',原因:'NIB数据无效。 在LoadNib行上,那是什么? 这个xcode是一些苹果垃圾吗?
我试图同时学习Swift和iOS开发的基础知识,所以请耐心等待。 我有一个TableViewController,它首先parsing本地的JSON文件,并将其非常简单的数据转换为TableViewCells和SectionHeaderViews。 在同一个TableViewController中,我正在调用一个JSON端点,该端点正在返回数据,然后我将其设置为variables,以便我可以访问我实际想要获取的数据(API结构不太理想)。 所以,我终于设置适当的数据是self.tableData,然后调用self.tableView.reloadData()但没有任何反应。 是什么赋予了? (有关的代码是在这个类的底部) import UIKit class BusinessTableViewController: UITableViewController { var data: NSMutableData = NSMutableData() var tableData: NSArray = NSArray() @lazy var Business: NSArray = { let pathTCT = NSBundle.mainBundle().pathForResource("TCT", ofType: "json") let data = NSData.dataWithContentsOfFile(pathTCT, options: nil, error: nil) return NSJSONSerialization.JSONObjectWithData(data, options: nil, error: nil) as NSArray }() override func viewDidLoad() { […]
我在xcode 5项目上遇到了自动布局问题。 我正在使用导航控制器内部的普通视图控制器。 上半部分有一个MKMapView ,下半部分有一个UITableView 。 我正在使用storyboards ,并configuration了原型UITableViewCell ,但我通过代码添加约束。 我已经仔细检查了原型中的每个控件,并且没有看到任何configuration的约束。 我为UITableViewCell添加约束时发生问题。 我在单元格中有以下代码: -(void)updateConstraints { [super updateConstraints]; //first remove old constraints [self removeConstraints:self.constraints]; [self.nameLabel removeConstraints:self.nameLabel.constraints]; [self.addressLabel removeConstraints:self.nameLabel.constraints]; [self.rentableSquareFeetLabel removeConstraints:self.rentableSquareFeetLabel.constraints]; [self.lastSaleAmountLabel removeConstraints:self.lastSaleAmountLabel.constraints]; [self.lastSaleDateLabel removeConstraints:self.lastSaleAmountLabel.constraints]; [self.thumbnailImageView removeConstraints:self.thumbnailImageView.constraints]; //then set up constraints NSDictionary *viewsDictionary = NSDictionaryOfVariableBindings(_thumbnailImageView, _nameLabel, _rentableSquareFeetLabel, _lastSaleAmountLabel, _addressLabel, _lastSaleDateLabel); [self addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[_thumbnailImageView(60)]-[_nameLabel(<=200)]-(>=8)-[_rentableSquareFeetLabel]-(>=8)-[_lastSaleAmountLabel]|" options:0 metrics:nil views:viewsDictionary]]; [self addConstraints:[NSLayoutConstraint […]
我有很多的数据和在我的tableView很多行。 当数据发生变化时,我想在屏幕上更新我的可见单元格,我真的不想使用reloadData,因为这是一个昂贵的调用。 是否有可能以某种方式更新可见单元格? 我试着在桌面上调用: beginUpdate & endUpdate ,但是这一直不工作? 有什么build议么?
我在UIScrollView有一个不滚动的UITableView 。 我将UITableView的框架大小设置为其内容大小。 当我向UITableView添加一行时,我在UITableView调用了insertRowsAtIndexPaths:withRowAnimation 然后我调用一个方法来调整UITableView的框架: – (void)resizeTableViewFrameHeight { // Table view does not scroll, so its frame height should be equal to its contentSize height CGRect frame = self.tableView.frame; frame.size = self.tableView.contentSize; self.tableView.frame = frame; } 这似乎虽然contentSize尚未更新在这一点上。 如果我手动计算框架在上面的方法基于行数和部分的数量,然后该方法正常工作。 我的问题是,我怎样才能让UITableView更新其contentSize ? 我想我可以调用reloadData ,这可能会做到这一点,但是当我插入一个单元格时,重新加载整个表格似乎效率低下。
我有自定义的UITableViewCells包含一个UITextView。 我在Interface Builder中打开了UITextView中的链接检测。 当我第一次加载表视图时,似乎一切正常,但是当我在表视图中上下滚动时,链接检测会变得混乱。 具体而言,只有常规文本(通常是最初呈现的)的单元格显示为链接(文本视图中的所有文本均为蓝色并且是活动链接),链接指向某些对象其他表格视图单元格。 例如,链接可能指向位于不同表格视图单元格中的网站,或者启动电子邮件到位于不同表格视图单元格中的地址。 这似乎是当表视图单元格被重用时,即使文本视图文本正在更新,链接以某种方式得到保存。 这只发生在iOS 7,而不是iOS 6.它发生在模拟器和我的设备上。 这里是代码: – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *sectionKey = [self.orderedSectionKeys objectAtIndex:indexPath.section]; NSDictionary *infoDictionary = [[self.tableViewData objectForKey:sectionKey] objectAtIndex:indexPath.row]; static NSString *cellIdentifier = @"InfoDefaultTableViewCell"; InfoDefaultTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier]; if (cell == nil) { NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"InfoTableViewCells" owner:self options:nil]; cell = [topLevelObjects […]
我有一个UITableView,当我把它放在编辑模式,我想select行是可选的,但是,他们不是。 有没有办法可以强迫他们select?
我已经阅读过苹果文档,对于像Objective-C这样的初学者来说,这是不可理解的。 我试图实现多列UITableView下面这个链接的例子,它只是不工作,所以我需要了解如何cellForRowAtIndexPath工作,因为我个人这个方法似乎相当复杂。 1)它返回什么? UITableViewCell ? 但为什么看起来很奇怪? -(UITableViewCell *)tableView:(UITableView *)tableView 那是什么? 你能解释一下吗? 2)它如何被调用,什么是更重要的,我怎么连接到一个特定的UITableView ? 如果我有两个UITableView的名为firstTableView和secondTableView ,我希望他们是不同的(执行cellForRowAtIndexPath不同)? 我应该如何链接我的UITableViews到这个 -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 该方法接受NSIndexPath ,而不是UITableView 。 我该怎么办?