有没有办法既可以指定UITableView行动画的持续时间,也可以在动画完成时获取回调?
我想做的是在动画完成后闪烁滚动指示器.之前做闪光灯不会做任何事情.到目前为止,我的解决方法是延迟半秒(这似乎是默认的动画持续时间),即:
[self.tableView insertRowsAtIndexPaths:newRows
withRowAnimation:UITableViewRowAnimationFade];
[self.tableView performSelector:@selector(flashScrollIndicators)
withObject:nil
afterDelay:0.5];
Run Code Online (Sandbox Code Playgroud) 在R中,是否可以从正则表达式匹配中提取组捕获?据我所知,没有一个grep,grepl,regexpr,gregexpr,sub,或gsub返回组拍摄.
我需要从编码的字符串中提取键值对:
\((.*?) :: (0\.[0-9]+)\)
Run Code Online (Sandbox Code Playgroud)
我总是可以做多个全匹配greps,或做一些外部(非R)处理,但我希望我能在R中完成所有操作.是否有一个功能或包提供这样的功能来执行此操作?
我正在尝试实现类似于Tweetie应用程序的UI ,其行为如下:顶级视图控制器似乎是导航控制器,其根视图是"帐户"表视图.如果您点击任何帐户,它将转到第二级,其底部有一个标签栏.每个选项卡项显示不同的列表,并允许您进一步向下钻取(后续级别不显示选项卡栏).
所以,这似乎是实现层次结构:
UINavigationController
UITableViewControllerUITabBarController
UITableViewController
UITableViewController这似乎有效[^ 1],但根据SDK文档-pushViewController:animated:(强调添加)似乎不支持:
viewController:推入堆栈的视图控制器.它不能是标签栏控制器的实例.
我想避免私有API等,但我不确定为什么这种用法被明确禁止,即使它似乎工作正常.谁知道原因?
我已经考虑过将标签栏控制器作为主控制器,每个标签都包含单独的导航控制器.这个问题是每个导航控制器需要共享一个根视图控制器(即Tweetie中的"帐户"表) - 这似乎不起作用:将表控制器推送到第二个导航控制器似乎将其删除从第一个.更不用说选择不同帐户时所有的簿记可能会很痛苦.
我该如何以正确的方式实现这一目标?
[^ 1]:标签栏控制器需要进行子类化,以便该级别的标签栏控制器导航项与所选标签的导航项保持同步,并且单个标签的表控制器需要将其各自的详细视图推送到self.tabBarController.navigationController而不是self.navigationController.
我在尝试弄清楚为什么我在私有类别中声明的readwrite属性没有生成setter时学到了一些东西.这是因为我的类别被命名为:
// .m
@interface MyClass (private)
@property (readwrite, copy) NSArray* myProperty;
@end
Run Code Online (Sandbox Code Playgroud)
将其更改为:
// .m
@interface MyClass ()
@property (readwrite, copy) NSArray* myProperty;
@end
Run Code Online (Sandbox Code Playgroud)
我的二传手是合成的.我现在知道,类扩展不仅仅是匿名类别的另一个名称.保留一个未命名的类别会导致它变成一个不同的野兽:一个现在提供编译时方法实施强制并允许你添加ivars.我现在理解每个基础的一般原理:类别通常用于在运行时向任何类添加方法,而类扩展通常用于强制私有API实现并添加ivars.我接受这个.
但有些小事让我感到困惑.首先,在高层:为什么要这样区别?这些概念看起来像是类似的想法,无法决定它们是相同的还是不同的概念.如果它们是相同的,我希望使用没有名称的类别和具有命名类别(它们不是)的类别可以完全相同.如果它们不同,(它们是)我会期望两者之间存在更大的语法差异.看起来很奇怪,"哦,顺便说一句,要实现一个类扩展,只需写一个类别,但忽略名称.它神奇地改变了."
第二,关于编译时强制的主题:如果你不能在命名类别中添加属性,为什么这样做会说服编译器你就是这么做的?为了澄清,我将用我的例子来说明.我可以在头文件中声明一个readonly属性:
// .h
@interface MyClass : NSObject
@property (readonly, copy) NSString* myString;
@end
Run Code Online (Sandbox Code Playgroud)
现在,我想转到实现文件并给自己私有的readwrite访问属性.如果我做得正确:
// .m
@interface MyClass ()
@property (readwrite, copy) NSString* myString;
@end
Run Code Online (Sandbox Code Playgroud)
当我不合成时,我会收到警告,当我这样做时,我可以设置属性,一切都很好.但是,令人沮丧的是,如果我碰巧有点误导了类别和类扩展之间的区别,我尝试:
// .m
@interface MyClass (private)
@property (readwrite, copy) NSString* myString;
@end
Run Code Online (Sandbox Code Playgroud)
编译器完全安心认为属性是readwrite.我没有得到任何警告,甚至没有好的编译错误"对象无法设置 - 无论是readonly属性还是没有找到setter",在设置myString时我都没有在类别中声明readwrite属性.我只是在运行时获得"不响应选择器"异常.如果(命名)类别不支持添加ivars和属性,那么要求编译器按相同规则播放是否太过分了?我错过了一些宏伟的设计理念吗?
有没有办法找到特定的框架UITabBarItem中UITabBar?
具体来说,我想创建一个图像"下降"到其中一个选项卡的动画,类似于删除邮件中的电子邮件或购买iTunes应用程序中的曲目.所以我需要动画的目标坐标.
据我所知,没有公共API来获取坐标,但是对此却不满意.除此之外,我将不得不使用给定标签相对于标签栏框架的索引来猜测坐标.
我试图从R中获取MySQL数据库中的UTF-8文本.我在OS X上运行R(通过GUI和命令行尝试),默认语言环境是en_US.UTF-8,没有无论我尝试什么,查询结果显示"?" 对于所有非ASCII字符.
我尝试过设置options(encoding='UTF-8'),DBMSencoding='UTF-8'当通过ODBC连接时,Encoding(res$str) <- 'UTF-8'在获取结果后设置,以及每个的'utf8'变体,都无济于事.从命令行运行查询mysql客户端正确显示结果.
我完全难过了.任何想法为什么它不工作,或我应该尝试的其他事情?
这是一个相当小的测试用例:
$ mysql -u root
mysql> CREATE DATABASE test;
mysql> USE test;
mysql> CREATE TABLE test (str VARCHAR(10)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO test (str) VALUES ('?????');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+-----------------+
| str |
+-----------------+
| ????? |
+-----------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)
使用RODBC和RMySQL查询R中的表显示"?????" 对于str列:
> con <- …Run Code Online (Sandbox Code Playgroud) 我有一个UITableView,当用户触摸分段控件时,其数据源和委托在几个自定义数据源对象之间切换(在应用程序商店应用程序中认为"Top Paid"与"Top Free").
每个数据源对象保存其最后一个滚动内容偏移量,并在它成为表视图的活动数据源时通过执行以下操作来恢复它:
tableView.contentOffset = CGPointMake(0, savedScrollPosition);
Run Code Online (Sandbox Code Playgroud)
当用户在桌子静止时切换数据源时,这很有效,但如果用户在桌子仍在移动(即减速)时点击分段控件,则表视图继续从旧偏移减速,有效地覆盖了我的contentOffset赋值.
有没有办法在设置contentOffset时强制表视图停止滚动/减速,或者使这种类型的可切换数据源表视图工作的其他方法?
在iPhone上,当显示某个附件视图(披露指示符等)时,如何计算表格视图单元格内容视图的宽度?
我需要这个来计算包含包装,可变长度文本的单元格的正确单元格高度.但是当要求表视图委托获取单元格高度时,它实际上并没有实际的单元格实例,因此它不能直接查询内容视图边界.
我可以很容易地在右边硬编码一个20像素的边距,这对于带有显示指示的纵向样式的普通样式桌面视图来说是准确的,但是更喜欢用正确的方式做到这一点,以便它在Apple决定时继续工作调整保证金.
(这与这个问题有关.)
该核心数据文件指出:
与[fetched]属性关联的获取请求可以具有排序顺序,因此可以对所获取的属性进行排序.
如何在Xcode的数据模型编辑器中为fetched属性指定排序描述符?我无法在任何地方找到相关领域.我正在为iPhone平台开发,如果这有任何区别.
如果通过图形模型编辑器无法实现这一点,那么如何在代码中修改fetched属性的获取请求以使其具有排序描述符?
我有一个UITableViewController实例化的子类,取决于它在哪里使用,在NIB中或通过代码.在这两种情况下,我都想在初始化方法中进行自定义.这是否意味着我必须实现initWithNibName:bundle: 和 initWithCoder:,并且将每个方法调用它的各超初始化?
虽然我现在不需要这个,但是如果我也希望能够实例化视图控制器initWithStyle:呢?那么我是否需要3种不同的init方法来复制相同的行为?
这似乎违反了整个指定的初始化程序约定,因为基本上会有3个单独的初始化程序不会最终调用公共init方法.或者有没有办法在支持3种不同的实例化路由时创建公共指定的初始化程序?
iphone ×7
cocoa-touch ×5
uitableview ×3
ios ×2
objective-c ×2
r ×2
animation ×1
capture ×1
core-data ×1
mysql ×1
odbc ×1
regex ×1
sorting ×1
uiscrollview ×1
uitabbaritem ×1
utf-8 ×1
xcode ×1