Tag: uitableview

UITableView布局搞乱推继续和返回。 (iOS 8,Xcode beta 5,Swift)

tldr; 自动约束在push segue上显示为中断,并返回查看自定义单元格 编辑 :我提供了一个github示例项目,展示了发生的错误https://github.com/Matthew-Kempson/TableViewExample.git 我正在创build一个应用程序,它需要自定义UITableCell的标题标签以允许根据post标题的长度来改变行数。 单元格正确加载到视图中,但是如果按下单元格将其加载到包含WKWebView的视图中,您可以看到,如屏幕截图所示,单元格会立即移动到不正确的位置。 当通过UINavigationController的后退button加载视图时,也可以看到这一点。 在这个特别的例子中,我在最后一个单元格上按下“我在巴黎拍了一张照片的两个哥们”的标题,并且正确地加载了一切。 然后如下图所示,在加载第二个视图的背景下,单元格全部向上移动,原因不明。 然后,当我加载视图时,你可以看到屏幕稍微向上移动,我实际上不能滚动任何低于所示。 与其他testing一样,当视图加载到底部单元格下方的空白处不会消失时,这看起来是随机的。 我还包括一个包含细胞所具有的限制的图片。 图像(我需要更多的声誉提供图像在这个问题显然,所以他们在这张imgur专辑): http ://imgur.com/a/gY87E 我的代码: 自定义单元格中的方法允许单元格在旋转时正确调整视图的大小: override func layoutSubviews() { super.layoutSubviews() self.contentView.layoutIfNeeded() // Update the label constaints self.titleLabel.preferredMaxLayoutWidth = self.titleLabel.frame.width self.detailsLabel.preferredMaxLayoutWidth = self.detailsLabel.frame.width } 在tableview中的代码 override func viewDidLoad() { super.viewDidLoad() // Create and register the custom cell self.tableView.estimatedRowHeight = 56 self.tableView.rowHeight = UITableViewAutomaticDimension […]

有条件的segue在UITableViewCell上点击执行

我正在使用Xcode 4.2开发iOS 5项目。 我有一个UITableViewController,并希望当用户点击表格单元时执行一个segue,但目标视图控制器取决于该单元格上执行的操作。 例如,当用户点击单元格我想加载SomeViewController,但是当用户在编辑模式下点击相同的单元格我想加载AnotherViewController。 不幸的是,在Xcode 4.2 storyboard builder中,没有办法在同一个单元格上configuration多个segues,或者我不明白。 也许有一种方法可以在代码编辑器中手动创buildsegue。 一般来说,我想实现的目的是为用户提供一种方法,使用一个视图控制器“input”由单元格表示的项目,并使用另一个视图控制器“编辑”由同一个单元格表示的项目。 在表编辑模式下切换到第二个视图控制器(编辑器)只是我第一次,但也许有更好的办法。 任何帮助将不胜感激。

分组的UITableView在底部有20px的额外填充

分组表视图似乎在iOS 6底部有额外的填充(iOS 5没有它),但我找不到任何文档表明这是正确的/预期的行为。 这也会影响示例项目,例如TableViewSuite示例中的SimpleTableView项目。 我想我不得不改变AppDelegate的风格到“分组”,并将SDK更新到iOS 6,但是没有对该项目进行其他更改。 调查显示,有10px保留为页眉和页脚的意见,加上一些20px是不能解释的。 没有实际的页眉或页脚视图( tableHeaderView和tableFooterView是nil ,实现和返回nil例如viewForFooterInSection什么都不做)。 我无法在tableView上find任何“20”值,尽pipe我可能错过了某些东西。 为页脚添加一个零大小的视图什么都不做,但是添加一个1px正方形视图会导致额外的填充消失。 例如: tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0,0,1,1)]; 它仍然需要1px的高度,所以底部填充现在是11px ,但是这比20更不明显。现在将11px设置为0将导致只有1px的底部空间。 我的问题是:什么? 我怎么能彻底删除它? 这不是什么关键任务,但它是非常奇怪的,不可取的,据我可以告诉它是无证的。 请注意 – 从苹果dev论坛复制过去的问题。 但我有完全相同的问题,我不知道如何解决它。

使用自动布局以编程方式更改框架

我有一个UITableView与Autolayout和我需要降低GADBannerView出现在屏幕的底部的高度。 不幸的是Autolayout是不可能修改框架的。 解决办法是删除Autolayout并手动设置框架。 这是非常危险的,因为我所有的应用程序都能在3.5'和4.0'显示器上正常工作,并且移除自动布局,从而导致新的testing阶段和更多的努力 即使自动布局被启用,是否有改变框架的方法?

UITableView进入半透明的导航栏

我想在IOS 7应用程序中有一个透明的导航栏。 我的应用程序中有一个全屏的图像。 我也有一个UITableView的图像。 当我使用下面的代码,图像符合我想要的屏幕,但UITableView在导航栏下。 在viewDidLoad 我用 self.navigationController.navigationBar.shadowImage = [UIImage new]; self.navigationController.navigationBar.translucent = YES; self.navigationController.view.backgroundColor = [UIColor clearColor]; 当我改变到self.navigationController.navigationBar.translucent = NO; 但后来我在导航栏上失去了透明度。

删除UITableView中的UITableViewCells之间的行

我用UITableViewCell创build了一个UITableViewCell 。 在视图单元格之间有长大的线条。 我想删除这些行,不想显示它们,但我不知道如何。 我使用Xcode 6.1和Swift。 以下是显示我的屏幕的截图: 谢谢!

cellForRowAtIndexPath:未调用

我的应用程序有两个状态:login和未login,我有以下架构(大大简化): – 包含一个search框和一个表视图的ViewController A. – 用于login应用程序的ViewController B. stream程如下: – 用户未login; – A被推入堆栈。 在viewWillAppear我检查用户是否login,如果是,则发出asynchronousnetworking请求,一旦完成,就会从networking中载入数据。 但由于用户此时尚未login,因此表视图为空; – 用户点击search框; 因为他没有login,B被推(确认后); – 他在B中成功login,然后按下popupB键并再次显示A的button; – 在这个时候,因为他已经login了,从viewWillAppear我做asynchronous请求; – 当完成时,我在表视图上调用reloadData 。 我注意到的是numberOfRowsInSection:被调用,它返回正确的结果,但是cellForRowAtIndexPath:不会被调用,表格保持为空。 我已经检查并在主线程上调用reloadData 。 任何想法是什么? 因为这让我疯狂! 谢谢, S. 编辑:这是从A的viewWillAppear代码的asynchronous位 if ([User isLoggedIn]) { [self.asyncRequest fetchDataWithCompletionHandler:^(id response, NSError *error) { [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; if (error) { [Utils displayError:error]; } else { self.array […]

dequeueReusableCellWithIdentifier:forIndexPath:get使用的indexPath在哪里?

苹果的文档说到indexPath参数: 索引path指定单元格的位置。 数据源收到这个信息,当它被要求的单元格,应该只是通过它。 此方法使用索引path根据表格视图中单元格的位置执行其他configuration。 但是register(Class|Nib):forCellReuseIdentifier:只指定要使用的重用标识符,而不是一个或一组索引path。 我想也许UITableViewCell有一些方法可以把它放在索引path上,所以如果在一个部分的第一行,它可以说是圆angular,但是我没有看到它。 在创build时,它所得到的是它的风格和重用标识符( initWithStyle:reuseIdentifier: ; 在重新使用的时候,所有被告知的是prepareForReuse 。 看到旧的dequeueReusableCellWithIdentifier:仍然被支持,如果它不能依靠有机会这样做,它可能会做什么样的基于索引path的configuration? 我查看了“桌面视图编程指南”,但从iOS 5开始并没有更新。

以编程方式创buildUITableView

我有一个应用程序在Xcode 4.6使用故事板。 我添加了一个UITableView到视图控制器类,按预期工作。 但是,当我尝试删除故事板中的UITableView并以编程方式将其重新添加到同一个类中时,我遇到了两个特定的问题: 1)虽然我将UITableViewCelltypes设置为字幕types,但细节标签不再显示。 2)当我select一个单元格时,不会发生这种情况,并且准备好的segue甚至没有被调用,表示当一个单元格被选中时没有消息被发送到表格视图。 这是相关的代码: @interface StatsTableViewController () <UITableViewDataSource, UITableViewDelegate> @property (strong, nonatomic) UITableView *tableView; @end @implementation StatsTableViewController -(UITableView *)makeTableView { CGFloat x = 0; CGFloat y = 50; CGFloat width = self.view.frame.size.width; CGFloat height = self.view.frame.size.height – 50; CGRect tableFrame = CGRectMake(x, y, width, height); UITableView *tableView = [[UITableView alloc]initWithFrame:tableFrame style:UITableViewStylePlain]; tableView.rowHeight […]

是否可以configuration一个UITableView允许多选?

对于iPhone,是否可以configuration一个UITableView,以便允许多选? 我已经尝试覆盖-setSelected:animated:为每个UITableViewCell,但试图-setSelected:animated:所需的行为是棘手的,因为它是很难分开真正的select从那里的UITableView认为我已经取消select另一个单元格! 希望有人能帮助! 谢谢, 缺口。