小编Ada*_*der的帖子

使用单独的委托/ dataSource时出现UITableView问题

概述:

首先,我UITableView使用Interface Builder将其置于Xcode生成的视图中.视图的文件所有者设置为Xcode生成的子类UIViewController.为了这个子类我已经加入工作的实施numberOfSectionsInTableView: tableView:numberOfRowsInSection:以及tableView:cellForRowAtIndexPath:与表视图的dataSource,并delegate通过在Interface Builder文件所有者连接到这个类.

上述配置没有问题.当我想将这个Table View dataSourcedelegate-implementations移到一个单独的类时,问题就出现了,很可能是因为除了Table View之外还有View上的其他控件,我想将Table View相关的代码移到它的自己的班级.为此,我尝试以下方法:

  • UITableViewController在Xcode中创建一个新的子类
  • 移动已知良好的实现numberOfSectionsInTableView:,tableView:numberOfRowsInSection:并移动tableView:cellForRowAtIndexPath:到新的子类
  • 将a 拖到InterfaceBuilder中现有 XIB UITableViewController的顶层 ,删除为此自动创建的/ ,然后将该类设置为与新子类匹配UIViewUITableViewUITableViewControllerUITableViewController
  • 删除以前工作UITableView的现有dataSourcedelegate连接,并将它们连接到新的UITableViewController

完成后,我没有工作UITableView.我最终得出了三个结果中的一个,这些结果似乎随机发生:

  • UITableView加载时,我得到一个运行时错误,指示我发送tableView:cellForRowAtIndexPath:到一个无法识别它的对象
  • UITableView加载时,项目会毫无错误地进入调试器
  • 没有错误,但UITableView没有出现

通过一些调试并创建了一个基本项目来重现这个问题,我通常会看到上面的第三个选项(没有错误但没有可见的表视图).我添加了一些NSLog调用,发现虽然numberOfSectionsInTableView:并且numberOfRowsInSection:都被调用,但cellForRowAtIndexPath:不是.我确信我错过了一些非常简单的事情,希望对于经验丰富的人来说答案可能是显而易见的.如果这不是一个简单的答案,我很乐意更新一些代码或示例项目.谢谢你的时间!

完成重现的完整步骤:

  • 在Xcode中创建一个新的iPhone OS,基于视图的应用程序并调用它 TableTest
  • TableTestViewController.xib …

iphone cocoa-touch objective-c uitableview

54
推荐指数
2
解决办法
5万
查看次数

进入编辑模式时动画自定义绘制的UITableViewCell

背景

首先,非常感谢atebits为他们提供的信息丰富的博客文章使用UITableView快速滚动Tweetie.这篇文章详细解释了开发人员如何从Tweetie中的UITableViews中尽可能多地挤出滚动性能.

目标

从博客文章(原创)(我的github repo)链接的源代码开始:

  1. 允许使用这些自定义单元格的UITableView切换到编辑模式,从而公开用于从表格中删除项目的UI.(github提交)

  2. 当删除控件从左侧滑入时,将单元格的文本移到一边.这是完整的,尽管文本在没有动画的情况下来回跳跃.(github提交)

  3. 将动画应用于上面目标2中的文本移动,以获得流畅的用户体验.这是我陷入困境的一步.

问题

引入此动画以完成目标3的最佳方法是什么?如果可以通过保持逻辑不受上次提交的方式完成,那将是很好的,因为我希望只选择移动视图的冲突部分,而任何非冲突部分(例如右对齐文本)留在同一个地方或移动不同数量的像素.如果无法实现上述目的,则撤消上次提交并将其替换为将整个视图向右滑动的选项也是一种可行的解决方案.

我感谢任何人都可以提供的任何帮助,从快速指针和想法一直到代码片段或github提交.当然,如果您愿意,欢迎您来我的回购.我将继续参与这个问题,以确保任何成功的解决方案都致力于github,并在此完整记录.非常感谢你花时间陪伴!

更新了想法

自从我的第一篇文章以来,我一直在考虑这个问题,并意识到在视图中相对于其他文本项移动一些文本项可以撤消原始博客文章中解决的一些原始性能目标.所以在这一点上,我正在考虑一个解决方案,其中整个单个子视图动画到其新位置可能是最好的.

其次,如果以这种方式完成,则可能存在子视图具有自定义颜色或渐变背景的实例.希望这可以通过以下方式完成:在正常位置,背景向左侧看不见,以便当视图向右滑动时,自定义背景在整个单元格中仍然可见.

iphone cocoa-touch objective-c ios

49
推荐指数
4
解决办法
3万
查看次数

使用MPMoviePlayerViewController时的iPad旋转错误

问题摘要

使用MPMoviePlayerViewController播放视频时更改iPad设备或模拟器的方向会导致在解除视频播放器时出现不一致的旋转状态.这是iPad SDK 3.2中的一个已知错误,记录在http://www.openradar.me/8012810

示例项目

我使用Xcode 3.2.2中基于视图的应用程序模板准备了一个最小的示例项目,使用以下代码启动播放器

NSURL *movieUrl = [NSURL URLWithString:@"http://devimages.apple.com/iphone/samples/bipbop/bipbopall.m3u8"];
MPMoviePlayerViewController *player = [[MPMoviePlayerViewController alloc] initWithContentURL:movieUrl];
[self presentMoviePlayerViewControllerAnimated:player];
[player release];
Run Code Online (Sandbox Code Playgroud)

该代码可在GitHub上获得,网址http://github.com/adamalex/FullScreenMovie,或使用http://github.com/adamalex/FullScreenMovie/zipball/master直接下载

重现步骤

  1. 使用上述信息获取项目
  2. 使用iPad模拟器或设备启动项目
  3. 点按按钮开始播放视频
  4. 将iPad旋转90度
  5. 关闭视频
  6. 请注意,UIStatusBar与应用程序UI不同步

目的

我已联系Apple,他们已经确认这是一个正在调查的错误.我想讨论使用公共API安全提交到App Store的临时解决方法.我将与Apple一起开设开发人员支持案例,并将报告我自己的进展情况.

iphone cocoa-touch objective-c ipad

10
推荐指数
1
解决办法
5651
查看次数

标签 统计

cocoa-touch ×3

iphone ×3

objective-c ×3

ios ×1

ipad ×1

uitableview ×1