小编Dan*_*iel的帖子

如何设置UIView的原点参考?

我正在创建一个UIImageView并将它添加到我的视图循环中,我将初始帧设置为0,0,1,47并且循环的每个段落我改变图像视图的中心以将它们分开.

我总是使用0作为origin.y

问题是原点引用位于图像视图的中心,假设我们在界面构建器中,这相当于下面的图像.

如何更改代码中的参考点?

在此输入图像描述

xcode cocoa uiview ios

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

尝试使用UI自动化在UITableViewCell中点击UIButton失败,"无法点击"

我有一个iPhone应用程序,我正在使用UI自动化进行测试.

我有一个按钮,UITableViewCell但是当我尝试使用UI Automation点击它时,我收到以下错误.

Script threw an uncaught JavaScript error: target.frontMostApp().mainWindow().scrollViews()[0].elements()[element_name].tableViews()[0].elements().firstWithPredicate(name contains[c] 'Brooklyn').elements()["detailsButton"] could not be tapped
Run Code Online (Sandbox Code Playgroud)

我已在Interface Builder中的按钮上启用了辅助功能,并为其分配了辅助功能标签(和标识符)"detailsButton".我可以检索按钮元素并验证它是否有效.我出于某种原因无法点击它.

UIATableCell布鲁克林

UIButton是一个圆形矩形按钮,启用了用户交互.感谢您的任何反馈.

iphone xcode instruments ui-automation ios

17
推荐指数
1
解决办法
3316
查看次数

iOS 6中的UIPopoverController方向崩溃

我目前的计划仅支持横向定位.

在iOS 6中,它崩溃了UIPopoverController.

'UIApplicationInvalidInterfaceOrientation',原因:'支持的方向与应用程序没有共同的方向,并且shouldAutorotate返回YES'

我启用项目的所有方向,它运作良好.但是,我需要为所有视图进行大量更改以仅支持格局.

有没有其他简单的方法来解决,UIOrientationUIPopoverController

objective-c uipopovercontroller ios6

17
推荐指数
1
解决办法
6489
查看次数

适用于iOS 5的Geofence API

我想构建一个可以在城镇中设置一定数量的地理围栏方形区域的应用程序,我知道我可以通过在后台启用位置来实现这一点,并检查这些坐标以确定它们是否在我感兴趣的区域.

但这意味着从系统接收许多通知并会达到电池性能.

相反,我想知道是否有一个新的API,或者可能是一个新的API,它可以让你设置一个地理围栏,只有当你在里面或附近时才会被系统通知,而不是经常监控你的位置.

那可能吗 ?

我发现了以下问题,但我找不到其他问题:http: //www.quora.com/Is-the-geo-fence-functionality-built-into-iOS5s-Reminders-application-available-as-a -public相向API

在我看来,还有更多的地理围栏然后跟踪GPS并与一系列兴趣点进行比较.如果我设置提醒应用程序以提醒我,当我进入时,我今晚必须走我的室友狗,然后我可以看到屏幕顶部的位置图标.

如果我打开多任务栏并删除提醒,位置图标仍然存在,表示手机正在跟踪我,但这对提醒应用程序来说是一项独立任务.

如果我使用后台位置跟踪设置应用程序,并从多任务栏中删除,则位置图标会随应用程序一起消失.这让我相信iOS 5.x中存在或将会有用于地理围栏的API,这将允许应用程序将一系列坐标发布到系统,并根据与这些点的接近程度接收本地通知.

有类似的东西存在与否?

谢谢

未来用户的更新

每个应用程序似乎有一个限制,可以随时监控(我的个人测试),因为这是一个共享资源.

Apple文档提取:

在指定要监视的区域集时,您应始终谨慎.区域是共享系统资源,系统范围内可用区域的总数是有限的.

gps location ios

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

重试flyway失败的迁移

我正处于配置和充分理解flyway的过程中,我遇到了这种情况:

  • 我成功配置了一个与flyway一起工作的新项目.
  • 我成功地将测试数据库从版本0迁移到1.0.3.
  • 迁移到版本1.0.4无法执行.(我试图添加已经存在的列,到目前为止没有问题,我的错.)

但是,一旦我对相应的脚本进行了必要的更改,flyway就会继续显示以下消息:

 Current schema version: 1.0.4
 com.googlecode.flyway.core.migration.MigrationException: Migration to version 1.0.4 failed! Please restore backups and roll back database and code!
Run Code Online (Sandbox Code Playgroud)

由于我不想恢复完整转储并再次应用每次迁移,只是为了使alter table脚本工作,我最终做的是对'schema_version'表的一些更改:

  • 第一次我删除了1.0.4版的条目
  • 第二,我将版本1.0.3的'current_version'字段设置为1
  • 然后再次执行flyway:migrate命令

在此之后,最终应用了迁移并显示了成功消息,但是我不太确定这是否是处理这种情况的正确方法.我不确定它是否有权自行修改'schema_version'表,因为我认为它只能由flyway本身修改.

所以,在解释发生在我身上的事后,我的问题是:

有没有办法"重试"在flyway中应用失败的迁移,而不是自己修改'schema_version'表?

我不知道要完成这项任务的任何命令?

flyway

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

"阻止指向非功能类型的指针无效"

这里我有一个编码字符串的方法(它是不完整的),你会发现我的问题是一个错误:"阻止指向非函数类型的指针无效"

+ (NSString *)encodeString: (NSString *)string {
    __block int indexShift;
    __block NSString *dictionary = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    __block NSString *encodeDictionary = @"mahgbcjdfukripylswxovzetqnFMAJWGCQYXLOETPBKSVNIZUHDR";
    __block NSString *encodeString = @"";

    void (^encode) = ^{ // Error here, "Block pointer to non-function type is invalid"
        for (int x = 0; x < string.length; x++) {
            int index = [dictionary indexOf:[string characterAtIndex:x]];
            indexShift += index;
            encodeString = [encodeString stringByAppendingFormat:@"%c", [encodeDictionary characterAtIndex:index+indexShift]];
        }
    };

    return encodeString;
}
Run Code Online (Sandbox Code Playgroud)

请告诉我为什么会发生这种情况,或者我需要更改以解决它.

encoding objective-c objective-c-blocks

15
推荐指数
1
解决办法
5336
查看次数

Facebook iOS 6 - 获取用户信息

是否可以使用内置的iOS 6 Facebook集成来获取用户的基本信息(电子邮件地址,生日等)?我见过的所有文档/示例都使用iOS 6集成来简单地打开一个SLComposeViewController.

感谢您的时间.

iphone facebook objective-c ios6

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

刷新NSFetchedResultsController数据?

我可以在我的应用程序中创建新的托管对象,在一个单独的视图中我有一个表格视图,显示我拥有的所有对象.

当我创建一个新的管理对象(在一个完全独立的观点),我发出这是试图让我的表视图用新的数据,其中包括我刚才提出的新对象重新加载的通知.

我不是在编辑表格视图.

只有一个托管上下文.

我无法理解我做错了什么.如果我关闭应用程序并重新启动我的新对象是在表视图中.当我收到通知新的对象时,我正在尝试调用reloadData,并且我还尝试再次执行获取,但我最终得到的是一个空表视图.

在代码方面,我的ListViewController:

@interface MyNotesViewController : UIViewController
{
    NSManagedObjectContext * __managedObjectContext;
    UITableView * _notesTableView;
    MyNotesTableViewDelegate_DataSource * _tableDelegate_DataSource;
}
Run Code Online (Sandbox Code Playgroud)

我的viewDidLoad看起来像这样:

- (void)viewDidLoad
{
    [super viewDidLoad];

    _tableDelegate_DataSource = [[MyNotesTableViewDelegate_DataSource alloc] init];
    _tableDelegate_DataSource.managedObjectContext = __managedObjectContext;
    [_notesTableView setDataSource:_tableDelegate_DataSource];

    NSError * _coreDataError;
    BOOL success = [[_tableDelegate_DataSource fetchedResultsController] performFetch:&_coreDataError];

    if(success){
        [_notesTableView reloadData];
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的委托/数据源对象中,我有:

@interface MyCommutesTableViewDelegate_DataSource : NSObject 

<UITableViewDataSource, NSFetchedResultsControllerDelegate>
{
    NSManagedObjectContext * __managedObjectContext;
    NSFetchedResultsController * __fetchedResultsController;
}

@property (nonatomic, retain) NSManagedObjectContext *managedObjectContext;

@end
Run Code Online (Sandbox Code Playgroud)

实施摘录:

-(NSFetchedResultsController*)fetchedResultsController{
    if(!__fetchedResultsController){
        NSFetchRequest * request = [[NSFetchRequest …
Run Code Online (Sandbox Code Playgroud)

core-data reload ios

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

使用AVFoundation在iOS上播放socket-streamamed h.264电影

我正在开发一个小型iPhone应用程序,它使用常规套接字通过网络连接流式传输电影内容.视频H.264格式正确.然而,我在播放/解码数据方面遇到了困难.我一直在考虑使用FFMPEG,但许可证使它不适合该项目.我一直在研究Apple的AVFoundation框架(AVPlayer特别是),它似乎能够处理h264内容,但是我只能找到使用url启动电影的方法 - 而不是通过证明从网络流式传输的内存缓冲区.

我一直在做一些测试,以实现这一目标,使用以下方法:

  1. 使用常规播放电影AVPlayer.每次在网络上接收数据时,都会使用fopen和append-mode将其写入文件.在AVPlayer然后的资产重新加载/与更新的数据重建.这种方法似乎存在两个问题:首先,当第一个资产被卸载并且新加载时,屏幕会短暂变黑.其次,我不知道比赛的确切位置,所以我不确定如何找到合适的位置开始播放新资产.
  2. 第二种方法是像第一种方法一样将数据写入文件,但不同之处在于数据被加载到第二个资产中.AVQueuedPlayer然后使用A ,其中第二个资产在播放器中插入/排队,然后在缓冲完成时调用.然后可以在没有黑屏的情况下卸载第一个资产.然而,使用这种方法,找出从哪里开始播放新资产更麻烦(比第一种方法).

有没有人做过这样的事情并让它发挥作用?有没有正确的方法来使用AVFoundation

avfoundation ios

13
推荐指数
1
解决办法
2982
查看次数

自定义报警的UILocalNotification重复间隔(太阳,周一,周二,周三,星期四,星期五,坐着)

UILocalNotification用于报警目的.我有一个基于工作日重复的自定义选项(sun,mon,tue,wed,thu,fri,sat).许多应用程序都执行了此过程.我最好的尝试了我的水平.但我无法让它发挥作用.请各位帮帮我....

iphone nscalendar ipad ios uilocalnotification

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