Tag: 可用视图

TableView不能重新加载

我正在devise一个使用表格视图的一对一聊天界面。 这个表视图被修改,以显示一些新的消息到达泡沫。 在这种情况下,新消息通过推送通知到达。 我在通过推送通知接收消息的函数中调用以下代码: -(void)messageReceived: (NSString *)message{ _message=[message retain]; [tableView reloadData]; } 但是,似乎这不会重新加载我的表格视图。 如果我把调用reloadData放在viewDidAppear函数中,它可以重新加载。 如果我将reloadData调用放在一个返回types为IBAction的函数中(例如:一个绑定到button单击的函数),它也会重新加载, 可能是reloadData不能通过自定义声明的函数触发的原因?

如何正确定位右侧的UITableView单元格子视图?

所以我试图添加一个UISwitch到我右边的表格单元格中。 我第一次尝试将它添加到accesoryView ,但是当我在表中进入编辑模式时,UISwitch消失。 所以现在我把它添加到contentView ,它工作的很好,没有消失。 但它将其添加到左上angular。 所以我试图把它添加到右边,但我想远离绝对值,以支持所有大小和方向。 所以我试着用这个代码: [[cell contentView] addSubview:switchView]; switchView.frame = CGRectMake(cell.contentView.frame.size.width – switchView.frame.size.width, 0, switchView.frame.size.width, switchView.frame.size.height); 但是,这是我得到: 任何想法如何解决这个问题?

UITableviewCell返回为零内块

我的tableView:cellForRowAtIndexPath:实现如下: – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { BSProductCell *cell = [tableView dequeueReusableCellWithIdentifier:BSProductCellIdentifier]; cell.productImageView.image = [UIImage imageNamed:@"Placeholder"]; [[BSImageLoader sharedInstance] getImageWithURL:self.dataSourceArray[indexPath.row] withCompletionBlock:^(UIImage *image, BOOL fromCache, NSString *error){ BSProductCell *tableCell = (BSProductCell *)[self.tableView cellForRowAtIndexPath:indexPath]; [tableCell.productImageView setImage:image]; NSLog(@"%@", tableCell); }]; return cell; } getImageWithURL:withCompletionBlock:如果在本地caching中找不到它,或者只是从caching中返回,则从指定的URL下载图像。 起初,当视图加载和单元格填充时,所有事情都按预期进行:图像正在下载,然后放置在单元格内。 问题是当我开始滚动tableview,NSLog显示(null) 。 我只是不知道为什么tableCell对象为null。 PS:我遵循一个与苹果几乎完全相同的例子,写了我的例子。 另外我检查, self.tableView和indexPath是零内块。

长按uiTableView IOS更改单元格的select

在uitableview上正常的单元格select工作正常。 但是,当长按事件被称为一个单元格时,它会再次select先前select的单元格。 例如,如果用户select第一个单元,然后长按第二个单元,则为第二个单元调用长按事件,但是select再次返回到第一个单元。 这是我的代码: – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"MyIdentifier"]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:@"MyIdentifier"]; cell.selectionStyle = UITableViewCellSelectionStyleNone; //add longPressGestureRecognizer to your cell UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)]; //how long the press is for in seconds lpgr.minimumPressDuration = 1.0; //seconds [cell […]

uitableview重新sorting不起作用,源始终等于目的地

我有一个tableview不会重新sorting。 它看起来像moveRowAtIndexPath永远不会调用与destinationIndexPath不同的sourceIndexPath。 当我拉一排时,它会跳回到起始位置,就好像这排不支持移动一样。 我试图实现所有的“canMove / canEdit /build议”方法返回YES,但我观察到相同的行为。 这是怎么回事? – (void) tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)sourceIndexPath toIndexPath:(NSIndexPath *)destinationIndexPath { NSLog(@"%d -> %d", [sourceIndexPath row], [destinationIndexPath row]); if ([sourceIndexPath row] == [destinationIndexPath row]) { return; } MyDomain *domain = [self getObject]; [domain.stuff exchangeObjectAtIndex:(NSUInteger) [sourceIndexPath row] withObjectAtIndex:(NSUInteger) [destinationIndexPath row]]; }

如何使浏览器在ios中滚动

我有一个视图,我想滚动我的tableview滚动。 这是每当我滚动我的tableview将向上滚动的视图。 但是这是当我这样做时会发生什么: 你可以看到在我的目标视图和tableview之间有一个黑色的空间。 在我scrollViewDidScroll我做到了这一点: CGPoint offset = scrollView.contentOffset; self.counter = 0; CGRect bounds = scrollView.bounds; CGSize size = scrollView.contentSize; UIEdgeInsets inset = scrollView.contentInset; float y = offset.y + bounds.size.height – inset.bottom; float h = size.height; float reload_distance = 10; float scrollViewHeight = scrollView.frame.size.height; float scrollContentSizeHeight = scrollView.contentSize.height; float scrollOffset = scrollView.contentOffset.y; self.tableData.contentInset = UIEdgeInsetsZero; […]

如何重新创build静态单元格支持UITableViewController?

我有很多共同的逻辑,因此我所有的viewController从BaseViewController,BaseDetailsViewController或BaseWebViewControllerinheritance。 最后两个inheritance自从UIViewControllerinheritance的BaseViewController。 问题是我不能使用tableViews静态单元格,因为我的BaseDetailsViewController不是从UITableViewControllerinheritance。 我从来没有使用和inheritanceUITableViewController,因为可以通过从UIViewControllerinheritance,使用添加的UITableView并实现数据源和委托方法来实现。 因此,对于表单types的屏幕(SignUp或其他数据input屏幕),我使用我自己的BaseDetailsViewController,它添加了方便的方法(inputvalidation,自定义样式,滚动键盘,处理input字段导航等) 使用UITableViewController有两个真正的好处:1)键盘滚动(如果你使用文本字段)和2)在屏幕上轻松创build你的表单UI元素。 第一个好处是我无关紧要,因为我已经在BaseDetailsViewController里面自己实现了这个东西。 关于第二个好处,我在scrollView中创build了我的表单,这给了很大的灵活性,但是它有点更多的努力(特别是当需要更新屏幕时)。 因此,我听到有些人实现了自己的UITableViewController,然后使它从BaseViewControllerinheritance。 所以我开始深入这个方法。 到目前为止,我遇到了这两种方法: 重新创build你自己的tableVC 。 不清楚如何使它适用于静态单元格。 目前我的演示应用程序崩溃,如果我的ReplaceTableViewController没有实现numberOfRows和cellForRow,并不显示静态单元格,如果我用虚拟内容实现它们。 方法 – swizzling 。 不清楚如何通过为UITableViewController注入baseViewControllerinheritance来更改类inheritance,但还是不清楚需要添加哪些方法。 有谁试过,想分享? 更新我不使用故事板,因为我促进干净的MVC – 作为组件的每个屏幕应该有自己的模型,视图(Xib)和控制器,所有存储在单独的文件,以消除大型应用程序项目中的多个开发人员的合并冲突(30+屏幕)。 因此,embedded式segue到tableViewController的容器视图也不是一个选项。 UPDATE2如果有人想看看我为什么和怎么做这个,这里有一个链接到我的开源模板基于新的项目生成器框架 ,我最近开始发布。

如何使用button操作(带参数)从自定义UITableViewCell中推送视图

我在自定义单元格中添加了一个button。 它推动了一个观点。 我为CustomTableViewCell.h上的button创build了属性 @property (weak, nonatomic) IBOutlet UIButton *selectedMapButton; 我想使用selectedMapButton在TableViewController.m上推视图我试过这个代码,但是有些东西是不正确的。 – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { NSString *cord = cellSight[@"S_Coodinates"]; [cell.selectedMapButton addTarget:self action:@selector(sightMapButton:cord) forControlEvents:UIControlEventTouchUpInside]; //When I call sightMapButton method. It gives an error return cell; } – (void)sightMapButton: (NSString *)withCoordinates { TOCGSightseeingMapKitViewController *mapKitController = [[TOCGSightseeingMapKitViewController alloc] init]; mapKitController.sightCoordinates = withCoordinates; [self.navigationController pushViewController:mapKitController animated:YES]; } […]

检测UITableView的自定义单元上的水龙头

所以我有一个自定义的UITableViewCell包含三个UILabel 。 UITableViewCell是这样的UILabel完全覆盖单元格。 现在我想要检测用户每次点击单元格。 问题是因为UILabel覆盖单元格,我不能使用UITableView委托方法来检测单元格上的触摸。 我尽pipe在UILabel上使用手势recoginzers但我没有得到被触摸的单元格的索引。 我也想过在单元格的顶部放置一个透明的button,但这里也有同样的问题,我无法得到被触摸的单元格的索引。 任何人都可以指导我的方法,我怎样才能完成检测与tableView didSelectRowAtIndexPath当UILabel覆盖单元格的水龙头。

从UITableView保存多个值

我有一个UIViewController调用4 UITableViewControllers作为其子视图。 这些表视图启用了附件复选标记,并可以在表中select多行。 我的问题是,当我的UIViewController与所有的tableview显示,我想保存每个tableview选定的值,并将其保存在一个数组或其他东西。 我也想在另一个类中使用这些选定的值,我必须显示所有这些选定的值。 任何人都可以帮助我如何保存不同tableview的多个值,并在另一个类中使用这些值?