我有一个UIPageViewController,我正在使用的实现提供网页数据UIPageControllerDelegate和UIPageControllerDataSource.
它一切正常,但我希望能够向页面数据添加项目并重新排序页面数据.
如果用户已经到达最后一个页面,然后我添加了一个项目,则他们无法访问下一页,因为viewControllerAfterViewController:已经调用过.如果他们向后滚动一个然后向前滚动两个,他们可以很好地进入新页面,因此数据设置正确.我怎么能告诉它UIPageViewController刷新下一步的商店?
同样,我想重新排序支持页面视图的集合.但如果我这样做,我会遇到同样的问题 - 页面视图会认为下一页仍然是上次加载当前页面时的情况.
我想我在寻找类似的东西reloadData:上UITableView.
我有一个基本上分为两部分的iPhone视图,上半部分有一个信息显示,下半部分有一个用于选择动作的UITableView.问题是UITableView中第一个单元格上方没有边框或分隔符,因此列表中的第一个项目看起来很有趣.如何在表格顶部添加额外的分隔符,将其与上方的显示区域分开?
这是构建单元格的代码 - 它非常简单.整体布局在xib中处理.
- (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];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
switch(indexPath.row) {
case 0: {
cell.textLabel.text = @"Action 1";
break;
}
case 1: {
cell.textLabel.text = @"Action 2";
break;
}
// etc.......
}
return cell;
}
Run Code Online (Sandbox Code Playgroud) 我在iPhone应用程序中存在内存问题,我想调试它MallocStackLogging.错误涉及陀螺仪,所以我必须在设备上调试而不是模拟器.
我已经设置了MallocStackLogging环境变量,iPhone正确记录了mallock堆栈日志:
MyApp(1856) malloc: recording malloc stacks to disk using standard recorder
MyApp(1856) malloc: stack logs being written into /private/var/mobile/Applications/1FD1F8D2-5D30-4AA7-B426-C52FE20266DE/tmp/stack-logs.1856.MyApp.index
MyApp(1856) malloc: Please issue: cp /private/var/mobile/Applications/1FD1F8D2-5D30-4AA7- B426-C52FE20266DE/tmp/stack-logs.1856.MyApp.e8z3IL.link /tmp/
Run Code Online (Sandbox Code Playgroud)
现在我该如何使用它们?
我可以使用Xcode Organizer将它们传输到Mac.但是我应该怎么处理这两个文件呢?
我尝试在Mac上的/ tmp中移动文件并调用:
$ malloc_history 1856 -all_events
malloc_history cannot examine process 1856 because the process does not exist.
Run Code Online (Sandbox Code Playgroud)
显然,该malloc_history命令在本地计算机上查找正在运行的进程.我错过了手动指定日志文件的选项.
有没有办法让这个工作直接在(非越狱)设备上使用Xcode或将日志传输到Mac?
方法调配对于实例方法非常有用.现在,我需要调整一个类方法.知道怎么做吗?
试过这个,但它不起作用:
void SwizzleClassMethod(Class c, SEL orig, SEL new) {
Method origMethod = class_getClassMethod(c, orig);
Method newMethod = class_getClassMethod(c, new);
if(class_addMethod(c, orig, method_getImplementation(newMethod), method_getTypeEncoding(newMethod)))
class_replaceMethod(c, new, method_getImplementation(origMethod), method_getTypeEncoding(origMethod));
else
method_exchangeImplementations(origMethod, newMethod);
}
Run Code Online (Sandbox Code Playgroud) 我正在寻找关于如何捕获退格事件的解决方案,大多数Stack Overflow答案都在Objective-C中,但我需要使用Swift语言.
首先,我为UITextField设置了委托并将其设置为self
self.textField.delegate = self;
Run Code Online (Sandbox Code Playgroud)
然后我知道使用shouldChangeCharactersInRange委托方法来检测是否按下退格是所有代码都在Objective-C中.我需要在Swift中使用以下方法,如下所示.
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {
const char * _char = [string cStringUsingEncoding:NSUTF8StringEncoding];
int isBackSpace = strcmp(_char, "\b");
if (isBackSpace == -8) {
// NSLog(@"Backspace was pressed");
}
return YES;
}
Run Code Online (Sandbox Code Playgroud) 更新:从iOS 5和Xcode 4.1开始,现在可以在模拟器中测试位置,甚至可以定义路线.有关详细信息,请访问http://developer.apple.com.
无论如何在iPhone模拟器上测试CoreLocation?
我需要的是能够自己设置位置并让CoreLocation返回它.
根据我的理解,beginTime可以用来表示"嘿,从正好在12:00开始".但是我怎么用CFTimeInterval类型告诉它?我认为这只是一种指定秒的"浮动"值.
或者还有什么与CAMediaTiming协议中指定的timeOffset属性的区别?
我想使用所有NULL列last(NULLS LAST)对结果进行排序,如SQL:2003扩展T611中所指定.可悲的是,SQLite似乎不支持它.有一个聪明的解决方法吗?
目前我正在尝试将UISearchController嵌入到我的应用程序中.但是UISearchBar是UISearchController的一个属性,如果UINavigationBar是非半透明的,则无法正确显示.通常在点击UISearchBar属性后,UINavigationBar向上移动以为UISearchBar腾出空间.您可以在以下屏幕截图中看到结果:
https://www.dropbox.com/s/172k63zr2bhj84t/Normal_behaviour.png?dl=0
但是如果UINavigationBar的"半透明"属性设置为"NO",则UISearchBar无法正确显示,因为状态栏的背景保持透明,如下面的屏幕截图所示:
https://www.dropbox.com/s/v5cnxoj9ms6976r/Wrong_behaviour.png?dl=0
为了演示这种奇怪的行为,我修改了Apple提供的示例项目:
https://developer.apple.com/library/ios/samplecode/TableSearch_UISearchController/Introduction/Intro.html
Run Code Online (Sandbox Code Playgroud)
在这里您可以下载修改后的版本:
https://www.dropbox.com/s/7icfe6kap98g1e8/TableSearchwithUISearchControllerObj-CandSwift_MODIFIED.zip?dl=0
Run Code Online (Sandbox Code Playgroud)
修改在文件"APLMainTableViewController.m"第33行.
我想允许用户通过GUI在iPhone模拟器上设置GPS信息.
但我不确定如何实现这一点 - 似乎这个名为iSimulate的工具通过安装自己的SDK以某种方式做到这一点.但我无法弄清楚他们是如何"覆盖"/"破解"模拟器的.
谢谢!