Tag: uitableview

UITableView:显示最后一个单元格的分隔符的正确方法

问题是什么是在表格/部分的最后一个单元格中显示分隔符的最右边的方法。 基本上这是我所追求的。 这是从原生的音乐应用程序,这使我认为应该可以通过UITableView实现,他们不会使用一些私人API的细胞分离器,对不对? 我知道你可以不用实际的分隔符,但在单元格的底部添加一条像素线。 但我不是这种方法的粉丝,因为 当一个单元格被选中/突出显示时, 其分隔符和 前一个单元格的分隔符会自动隐藏(请参阅第二个屏幕截图,选中“您必须疯了”)。 这是我想要UITableView来处理,而不是自己做,如果我使用一个像素线(这是特别方便的单元格分隔符不会一直延伸到表视图的边缘,分隔符和选定的单元格背景不看一起很好)。 我想尽可能保持单元格的滚动性能。 也有一些UITableView引用,让我觉得有一个简单的方法来得到我想要的: 在iOS 7和更高版本中,单元格分隔符不会一直延伸到表视图的边缘。 该属性为表格中的所有单元格设置默认的插入,就像rowHeight设置单元的默认高度。 它还用于pipe理在普通样式表底部绘制的“额外”分隔符。 有人知道如何使用在普通样式表底部绘制的这些“额外”分隔符吗? 因为这正是我所需要的。 我认为分配给UITableView separatorInset ,而不是UITableViewCell会做的伎俩,但它不,最后一个单元格仍然缺less其分隔符。 现在我只能看到一个选项:有一个自定义的页脚模仿最后一个单元格的分隔符。 这是不好的,特别是如果你想要使用tableView:titleForFooterInSection:方法有一个实际的部分页脚。

在CollectionView中滚动tableView时隐藏NavigationBar?

我有collectionViewController和collectionViewCell包含TableView.CollectionView是水平布局。我想在滚动tableView时隐藏导航栏。 有没有什么想法。

将UICollectionView touch事件传递给它的父UITableViewCell

这是视图结构: 外部视图是一个UITableView 。 在UITableViewCell里面,有一个UICollectionView 。 并注意集合视图单元格之间有一些黑色的间距。 当我点击UICollectionView中的空格时,我想让touch事件传递给UITableViewCell 。

带有Interface Builder的iOS8自动调整静态TableView单元格

我很兴奋能够在Xcode中使用自动布局来支持dynamictypes的静态TableViews,如WWDC2014“表和集合视图中的新增function”中所述 。 我宁愿严格使用Xcode / Interface Builder和故事板来处理自动布局。 当我这样做,不知何故TableView单元格不会resize,我敢肯定,我错过了一些简单的东西。 为了重现这一点,使用Xcode 7 beta 5,我: 创build一个新的单一视图项目。 将Storyboard入口点设置为一个新的UITableViewController。 使其成为具有分组样式的静态表格视图。 第一行添加了一个标签。 顶部,底部,左侧和右侧增加了约束条件。 将标签字体设置为“正文”。 添加到ViewDidLoad: self.tableView.rowHeight = UITableViewAutomaticDimension; self.tableView.estimatedRowHeight = 44.0; 将其编辑并在“设置”中调整dynamictypes。 当字体改变时,TableView高度仍然停留在明显的默认值44,并截断标签。 这是一个GitHub仓库 ,这是上述的结果。 为什么不是自动布局导致TableView展开,以填补必要的空间,以适应新的更大的标签文本? 我已经find了关于这个主题的很好的post,比如下面的代码, 在这里使用代码来设置约束。 我没有发现在纯粹的Interface Builder中这样做的任何例子。 这当然很有可能吗? 更新 我已经更新了GitHub源代码,包括一个ImageView而不是UILabel的第二个表格行; 它显示了同样的问题: 此外,当我在标签或图像视图上设置明确的高度约束时,我生成以下内容。 这个问题似乎是这个“UIView-Encapsulated-Layout-Height”约束,我没有设置。 我猜这是生成的,因为在IB的静态tableview中,行高设置(默认)为44。 Unable to simultaneously satisfy constraints. … "<NSLayoutConstraint:0x7fa371f39e30 V:[UILabel:0x7fa371f38d30'Label'(20)]>", "<NSLayoutConstraint:0x7fa371c39160 UILabel:0x7fa371f38d30'Label'.top == UITableViewCellContentView:0x7fa371e17dc0.topMargin>", "<NSLayoutConstraint:0x7fa371c393c0 UITableViewCellContentView:0x7fa371e17dc0.bottomMargin == […]

UIMenuController方法setTargetRect:inView:不能在UITableView中工作

我在我的tableview像这样显示自定义的UIMenuController 但问题是,它显示在中心,我想显示在橙色的label顶部。 为了显示在label我做了这个[menu setTargetRect:CGRectMake(10, 10, 0, 0) inView:self.lbl]; 下面是整个代码。 但是,如果我显示没有UITableView的UIMenuController setTargetRect工作正常。 为什么setTargetRect不能使用UITableView ? setTargetRect Doc说: (a)这个目标矩形(targetRect)通常是select的边界矩形。 UIMenuController将编辑菜单放在这个矩形的上方; 如果菜单没有足够的空间,则将其放置在矩形的下方。 菜单的指针被放置在目标矩形顶部或底部的中心。 (b)请注意,如果将目标矩形的宽度或高度设置为零,则UIMenuController会将目标区域视为定位的线条或点(例如插入符或单点)。 (c)一旦设置,目标矩形不会跟踪视图; 如果视图移动(例如在滚动视图中发生),则必须相应地更新目标矩形。 我错过了什么? MyViewController -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 5; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { TheCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cid" forIndexPath:indexPath]; cell.lbl.text = [NSString stringWithFormat:@"%ld", (long)indexPath.row]; return cell; } – (BOOL)tableView:(UITableView *)tableView shouldShowMenuForRowAtIndexPath:(NSIndexPath […]

是 – asynchronous或同步?

在表视图实例上调用-reloadData时,它是否使所有UITableViewDataSource调用asynchronous? 谢谢。

禁用UITableView(iPhone SDK 3.0)中的滚动

我试图在UITableViewembeddedUITextField编辑UITableView禁用滚动。 这只是为了防止细胞在编辑时滚动出来(也避免了一些相关的细胞“回收”问题)。 在search时我看到有人提出了明显的: tableView.scrollEnabled = NO: 甚至 tableView.userInteractionEnabled = NO; 这不工作虽然(至less对我来说… iPhone SDK 3.0,尝试在模拟器上)我将这些属性设置为NO,我甚至通过日志logging检查属性设置为NO,但UITableView保持正常响应触摸事件。 而且它也很高兴地滚动。 如果networking上有人没有声称这真的有效,我不会那么担心。 我错过了什么吗? 或者是唯一的替代子类UITableView使其超类(UIScrollView)可用的function再次工作?

使用UIRefreshControl在TableView中移动标题

我的UIRefreshController做了一些奇怪的事情。 当我下拉刷新,tableView标题被移动。 如果我拉下来看起来不错,但是如果我在刷新工作的同时向下滚动表格,那么在UITableCells正常的情况下,标题将被刷新控件的高度所偏移,并在标题后面滚动。 我想避免创build一个tableViewController,所以我在viewDidLoad中执行以下操作: _refreshControl = [[UIRefreshControl alloc] init]; [_refreshControl addTarget:self action:@selector(refresh) forControlEvents:UIControlEventValueChanged]; [_tableView addSubview:_refreshControl]; 我有很多不同的视图控制器需要这个function的表。 有没有什么办法可以避免为每一个UITableViewController? 万分感谢!

在单个视图上的2个tableview

我需要一个例子或解释如何填充在同一个视图上的两个表视图。 我需要了解“cellForRowAtIndexPath”方法,有人可以提供一个例子,应该如何代码? 我的意思是如何识别哪个表视图? 谢谢 以下是我的cellForRowAtIndexPath方法: // Customize the appearance of table view cells. – (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } // Configure the cell… // Set up the cell MyAppAppDelegate *appDelegate = […]

在向每个单元格添加带cornerRadius的UILabel时,UITableView会进行爬网

我添加一个UILabel到我的表格视图中的每个单元格。 这最初没有问题。 当我使用layer.cornerRadius滚动表视图layer.cornerRadius停止UILabel的angular落。 UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(cell.bounds.origin.x+10 ,5, 30, 30)]; label1.backgroundColor = ([[managedObject valueForKey:@"color"] hasPrefix:@"FFFFFF"]) ? [UIColor blackColor] : color; label1.layer.cornerRadius = 10.0f; [cell addSubview:label1];