小编Seg*_*ero的帖子

在IBInspectable属性中使用Size Classes

有没有办法让我们的IBInspectable属性在Interface Builder中具有大小类?(与Font相似)

在此输入图像描述

单击"+"符号可以为不同大小的类选择不同的字体(大小和其他属性).

我问,因为我创建了一个自定义视图,其中包含一个width属性,我希望在某些大小的类上使该宽度不同.

ios xcode6 size-classes

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

如何在设备上的前台app中显示双倍高度绿色状态栏(In-Call)?

这里有很多问题要求在后台显示红色记录条.很明显我应该使用AVAudioSession类别AVAudioSessionCategoryPlayAndRecord.我的问题是,在我的应用程序中进行有效的VOIP呼叫时,如何在前台应用程序中显示绿色的通话栏(或至少红色条)?所以我可以回到调用UI点击状态栏区域,就像Whatsapp或Skype一样.

我已经尝试过的:

  • voip在这个SO答案中建议的Info.plist + + audio中的UIBackgroundModes键和模式(在进行背景时给我一个红色状态栏,但在前景时没有任何内容)setCategory:AVAudioSessionCategoryPlayAndRecordsetActive
  • 以前的+ AVAudioSession+ setMode:AVAudioSessionModeVoiceChat- 没有用
  • kCFStreamNetworkServiceTypeVoIP在pjsip源中将标志设置为套接字并重新编译它 - 没有帮助.此外,自iOS 8以来已弃用.
  • 创建一个单独的套接字,为inputStream/outputStream设置voip标志:( [self.inputStream setProperty:NSStreamNetworkServiceTypeVoIP forKey:NSStreamNetworkServiceType]这里获取示例代码)

使用pjsip进行通话.还有什么可以尝试增加状态栏高度,将所有UI移动?有没有任何标准方法可以做到这一点,或者我应该通过调整根UIWindow并在状态栏下设置另一个绿色UIWindow来自行破解它?


编辑:由于没有找到标准方法的答案,接受@ roman-ermolov答案.对于那些会寻找答案的人,我可以建议您自己做几个选择:

  1. 将根视图控制器包装在容器中,就像Apple的iAdSuite with Storyboards示例一样.以我的示例项目为例.可能是制作那个酒吧的最佳方式.
  2. Hack UINavigationBar height(参见方法) - 尚未用于横向,但可能已经解决
  3. 自己控制主UIWindow的框架,在状态栏下放置另一个UIWindow,其中包含所需的内容.

voip pjsip ios uistatusbar in-call

8
推荐指数
1
解决办法
1227
查看次数

无法连接到live'sssl://gateway.push.apple.com:2195'

我在IOS设备上遇到推送通知的APNS php代码问题,我有两个独立的开发和生产连接.

  1. 我已经在我的服务器上配置了开发连接,通过添加.pem文件证书和Passphares它的工作完美,我也收到了通知.看看我的开发配置:

网址:'ssl://gateway.sandbox.push.apple.com:2195'

$push = new ApnsPHP_Push(
    ApnsPHP_Abstract::ENVIRONMENT_SANDBOX,
    'APNS_Dev_ISAS.pem'
);
$myNewLogger = new MyNewLogger();
$push->setLogger($myNewLogger);

// Set the Provider Certificate passphrase
$push->setProviderCertificatePassphrase('1234567');

$push->setRootCertificationAuthority('APNS_Dev_ISAS.pem');
$push->connect();
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 比我通过添加以下参数配置生产连接但我收到连接错误:

网址:ssl://gateway.push.apple.com:2195

$push = new ApnsPHP_Push(
    ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION,
    'APNS_PROD_ISAS.pem'
);
$myNewLogger = new MyNewLogger();
$push->setLogger($myNewLogger);

// Set the Provider Certificate passphrase
$push->setProviderCertificatePassphrase('12345678');

$push->setRootCertificationAuthority('APNS_PROD_ISAS.pem');
$push->connect();
Run Code Online (Sandbox Code Playgroud)

连接错误: 信息:尝试ssl://gateway.push.apple.com:2195 ...错误:无法连接到'ssl://gateway.push.apple.com:2195':( 0)信息:重试连接(1/3)...信息:尝试ssl://gateway.push.apple.com:2195 ...错误:无法连接到'ssl://gateway.push.apple.com:2195 ':( 0)INFO:重试连接(2/3)...信息:尝试ssl://gateway.push.apple.com:2195 ...错误:无法连接到'ssl://网关. push.apple.com:2195':( 0)信息:重试连接(3/3)...信息:尝试ssl://gateway.push.apple.com:2195 ...错误:无法连接到'ssl://gateway.push.apple.com:2195':( 0)

我谷歌问题,我发现了一些解决方案,我已经检查了一切,一切都很好但没有成功.

  • 我使用了正确的开发和生产途径.
  • 我为两者创建了单独的证书.pem文件,并在推送应用程序上测试了证书.证书是正确的.
  • 端口也很好,我的服务器没有阻塞,因为在开发URL和开发服务器推送通知中使用相同的端口工作正常.

真的很感激任何帮助.提前致谢.

push-notification apple-push-notifications apns-php

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

在AppDelegate中使用推送通知重定向视图

我的目标是编写一个代码,当用户获得推送通知时,我希望将该用户重定向到另一个视图.如果用户带有推送通知,并且他是第一次查看控制器(欢迎主屏幕等(但未登录))

var rootViewController = self.window!.rootViewController as! ViewController
rootViewController.performSegueWithIdentifier("hospitalSegue", sender: self)
Run Code Online (Sandbox Code Playgroud)

这几行代码正在工作,但是,如果用户已经在另一个视图控制器(登录/登录/用户页面等),这段代码不起作用和重定向.我尝试了一切,但仍然无法提出解决方案.我的最终目标是:

if let rootViewController = self.window!.rootViewController as? ViewController
{
    var rootView: UserViewController = UserViewController()

    if let window = self.window{
        window.rootViewController = rootView
    }

    rootViewController.performSegueWithIdentifier("hospitalSegue", sender: self)
    println(self.window?.rootViewController)
}
Run Code Online (Sandbox Code Playgroud)

谁能给我一个想法?

cocoa-touch push-notification ios uistoryboardsegue swift

5
推荐指数
1
解决办法
1432
查看次数

在Sprite Kit中停止节点旋转

我无法弄清楚如何阻止节点旋转.为什么allowRotation没有禁用它?
这是我描述节点的方式:

SKSpriteNode *badguy = [SKSpriteNode spriteNodeWithTexture:[self.spriteAtlas textureNamed:@"test"]];
badguy.texture.filteringMode = SKTextureFilteringNearest;
badguy.physicsBody.angularVelocity = 0;
badguy.physicsBody.allowsRotation = NO;
badguy.physicsBody = [SKPhysicsBody bodyWithRectangleOfSize:CGSizeMake(32, 32)];    
badguy.physicsBody.velocity = CGVectorMake(0, 0);
badguy.physicsBody.categoryBitMask = CollisionTypeEnemy;
badguy.physicsBody.contactTestBitMask = CollisionTypePlayer | CollisionTypeWall | CollisionTypeEnemy;
badguy.physicsBody.collisionBitMask = CollisionTypeWall | CollisionTypePlayer | CollisionTypeEnemy;
badguy.physicsBody.mass = 10000;
badguy.physicsBody.restitution = 0;
badguy.physicsBody.dynamic = YES;
badguy.zPosition = 10;
Run Code Online (Sandbox Code Playgroud)

在更新时我调用此方法:

-(void)enemiesFollow
{

    [self.world enumerateChildNodesWithName:@"badGuy" usingBlock:^(SKNode * _Nonnull badGuyNode, BOOL * _Nonnull stop) {
        if((SDistanceBetweenPoints(self.player.position, badGuyNode.position) < 100)&&
           (SDistanceBetweenPoints(self.player.position, badGuyNode.position) > 32))
        { 
            SKAction * …
Run Code Online (Sandbox Code Playgroud)

sprite-kit

4
推荐指数
1
解决办法
970
查看次数

访问ntfs流以获取非常长的文件名失败

从具有非常长名称的文件访问备用ntfs流时遇到一些麻烦(更多MAX_PATH字符长,根据使用"\\?\"前缀创建).我第一次认为这是我在代码中的错误,但后来我尝试了一个cmd命令:

更多<"\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\long long long long long long long long long long filename !!!.png:streamname"

它失败并显示找不到文件的错误.该文件存在,其内容可以读取,但我无法访问我需要读取和写入的流.我不希望我的软件无法使用长文件名,所以我正在寻找这种情况的任何解决方法.

我知道我可以使用BackupRead功能,但我不确定这个解决方案是否可以在大文件上快速运行,并且在2000年无法运行.

GetShortPathName给出了相同的失败结果,是否有任何其他API可以缩短文件名?我真的不想使用短文件名的临时联结.有什么想法吗?

windows winapi ntfs stream

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