小编Ort*_*ntz的帖子

刷新UIPageViewController - 重新排序页面并添加新页面

我有一个UIPageViewController,我正在使用的实现提供网页数据UIPageControllerDelegateUIPageControllerDataSource.

它一切正常,但我希望能够向页面数据添加项目并重新排序页面数据.

如果用户已经到达最后一个页面,然后我添加了一个项目,则他们无法访问下一页,因为viewControllerAfterViewController:已经调用过.如果他们向后滚动一个然后向前滚动两个,他们可以很好地进入新页面,因此数据设置正确.我怎么能告诉它UIPageViewController刷新下一步的商店?

同样,我想重新排序支持页面视图的集合.但如果我这样做,我会遇到同样的问题 - 页面视图会认为下一页仍然是上次加载当前页面时的情况.

我想我在寻找类似的东西reloadData:UITableView.

iphone cocoa-touch uikit ios uipageviewcontroller

36
推荐指数
3
解决办法
2万
查看次数

如何在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 cocoa-touch objective-c uikit ios

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

如何在设备上使用MallocStackLogging?

我在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.但是我应该怎么处理这两个文件呢?

  • 堆栈logs.1856.MyApp.index
  • stack-logs.1856.MyApp.e8z3IL.link

我尝试在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?

iphone debugging xcode malloc-history

32
推荐指数
1
解决办法
9923
查看次数

如何在iOS上调整类方法?

方法调配对于实例方法非常有用.现在,我需要调整一个类方法.知道怎么做吗?

试过这个,但它不起作用:

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)

iphone objective-c swizzling ios

31
推荐指数
1
解决办法
2万
查看次数

检测UITextField中的退格事件

我正在寻找关于如何捕获退格事件的解决方案,大多数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)

cocoa-touch uikit ios uitextfielddelegate swift

30
推荐指数
9
解决办法
4万
查看次数

在iPhone模拟器上测试CoreLocation

更新:从iOS 5和Xcode 4.1开始,现在可以在模拟器中测试位置,甚至可以定义路线.有关详细信息,请访问http://developer.apple.com.

遗留问题

无论如何在iPhone模拟器上测试CoreLocation?

我需要的是能够自己设置位置并让CoreLocation返回它.

iphone cocoa-touch core-location ios

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

如何使用CFTimeInterval为动画指定beginTime?

根据我的理解,beginTime可以用来表示"嘿,从正好在12:00开始".但是我怎么用CFTimeInterval类型告诉它?我认为这只是一种指定秒的"浮动"值.

或者还有什么与CAMediaTiming协议中指定的timeOffset属性的区别?

iphone cocoa-touch core-animation uikit ios

27
推荐指数
4
解决办法
2万
查看次数

如何在SQLite中运行NULLS?

我想使用所有NULL列last(NULLS LAST)对结果进行排序,如SQL:2003扩展T611中所指定.可悲的是,SQLite似乎不支持它.有一个聪明的解决方法吗?

sql sqlite null

25
推荐指数
4
解决办法
9436
查看次数

UISearchController无法与非半透明的UINavigationBar一起正常工作

目前我正在尝试将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行.

cocoa-touch uinavigationbar uikit ios uisearchcontroller

24
推荐指数
3
解决办法
4322
查看次数

在iPhone模拟器上模拟位置更新

我想允许用户通过GUI在iPhone模拟器上设置GPS信息.

但我不确定如何实现这一点 - 似乎这个名为iSimulate的工具通过安装自己的SDK以某种方式做到这一点.但我无法弄清楚他们是如何"覆盖"/"破解"模拟器的.

谢谢!

iphone xcode core-location ios ios-simulator

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