小编Gin*_*nny的帖子

如何在内容适合屏幕时禁用UITableView表中的滚动

我的iphone应用程序中有一些(分组样式)表格(仅在屏幕的一部分上添加Interface Builder,但未加入子类UITableViewController),80%的时间都很小,适合屏幕.当桌子适合屏幕时,我想禁用滚动,使其更清洁.但是如果表格离开屏幕(稍后将行添加到行中),我想再次启用滚动(因为否则您无法看到该内容.)

有没有办法做到这一点?我似乎无法弄明白.我知道这样做:

tableView.scrollEnabled = NO;
Run Code Online (Sandbox Code Playgroud)

但我不确定在哪里,或者我是否必须计算表格对象的大小或其他东西才能使其发挥作用.


更新:这是最终为我工作的解决方案:

if (table.contentSize.height < table.frame.size.height) {
   table.scrollEnabled = NO;
 }
else {
   table.scrollEnabled = YES;
 }
Run Code Online (Sandbox Code Playgroud)

我在调用reloadData表后运行此代码,它计算出正确的大小并且似乎有效.

table.frame.size.heightInterface Builder屏幕上显示的对象的实际大小(您可以看到这一点),而table.contentSize.height高度是:标题,页脚和每个单元格的高度加在一起.

iphone scroll uitableview ios

228
推荐指数
7
解决办法
14万
查看次数

在uitableview中将画外音的焦点设置在特定的表格单元格上(UIAccessibility)

我有一个UITableView,只要用户向其添加另一个元素/表格单元格,我就会滚动到底部.对于屏幕,这可以正常工作,因为用户可以看到他们刚刚在表格底部添加的单元格.但是当使用VoiceOver运行我的应用程序时,第一个聚焦和读取的UITableCell是屏幕上可见的顶部单元格.

我想设置它,以便聚焦然后在UITableView出现时立即读取的单元格是表格中的最后一个单元格.我该怎么做呢?看起来它很简单,但我无法弄明白.

这是我到目前为止所尝试的(在cellForRowAtIndexPath中):

if (cellJustAdded && indexPath.row == [array count]-1) {
    cell.accessibilityElementIsFocused = YES; //obviously this does not work
}
Run Code Online (Sandbox Code Playgroud)

但我不认为你可以像这样使用accessibilityElementIsFocused.

iphone accessibility uitableview voiceover

12
推荐指数
1
解决办法
4971
查看次数

标签 统计

iphone ×2

uitableview ×2

accessibility ×1

ios ×1

scroll ×1

voiceover ×1