小编M. *_*ani的帖子

如何在iOS设备上播放360视频

浏览不同的网站并分析不同的资源我发现,要在iPhone上播放360个视频,你应该使用3-d party lib(Panorama).但我真的很感兴趣,你自己可以做到这一点.因为标准iOS元素不支持此类功能.

请提供一些建议,我应该使用这些方法为360视频创建自己的播放器.

video objective-c custom-controls ios 360-degrees

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

如何在iOS中简化单个复杂的UIBezierPath多边形

问题:

我有一个用户生成的多边形(通过在屏幕上注册用户的触摸),它可以是简单的或复杂的(复杂意味着具有未知数量的交叉点)并且我希望有一个简单的多边形由原始多边形上的相同点产生,类似于轮廓或轮廓,如果你愿意.

图片由堆栈溢出的未知用户提供

可能的解决方案:

我发现了这个,但它是一个JavaScript解决方案,是我需要的完美插图,但在ActionScript中!我不需要Path本身,这些点就足够了.你会怎么解决这个问题?

更新:

当我进一步观察时,我看到一些人建议解决方案是在点上使用凸壳算法,但是,凸壳不是这里的答案,因为如果我是对的,结果将如下:

凸壳重新组合

objective-c polygons ios uibezierpath

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

UITableViewCell内容在单独重新加载单元格时闪烁

我有一个链接到a的表视图NSFetchedResultController(即加载数据并跟踪数据的更改绑定到FRC)

我没有AutoLayout在我的单元格中使用(由于它在iOS 8中引入的巨大性能下降).我在单元格中手动布置我的单元格内容(使用-(void)layoutSubviews).另外,行的高度是根据内容计算的,并且正确缓存/无效.

如果与我的数据相关的任何条件发生更改,相关单元格将单独更新(-(void)controllerWillChangeContent:...通过-(void)controllerDidChangeContent:...实现整个委托方法),行更新的动画为:UITableViewRowAnimationNone

这里的问题是,我的细胞有透明背景,我可以看到一些视觉噪声(很可能是实际的细胞被垂直拉伸,我不能肯定地说,因为它们真的是短暂的和短暂的)[self.tableView reloadRowsAtIndexPaths:...];.

我尝试过很多东西都无济于事!

以下是我尝试过的不起作用的内容:

  • 实施-(CGFloat)tableView:(UITableView *)tableView estimatedHeightForRowAtIndexPath:(NSIndexPath *)indexPath,返回估计高度的准确值.
  • 设置self.tableView.rowHeight=UITableViewAutomaticDimension;,帮助很多,但没有解决它.
  • 禁用动画[self.tableView beginUpdates];并启用之后[self.tableView endUpdates];
  • 删除单元格内容中的所有子视图 -(void)tableView:(UITableView *)tableView didEndDisplayingCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath

有点帮助的事情:

  • 使细胞不透明(即为细胞设置背景颜色).奇怪的是,工件似乎在实际的单元格内容之下.

更多信息

  • 我的大部分单元格内容都来自AsyncDisplayKit(ASTextNode,ASImageNode),但是用它们替换它们UIKit并不能解决问题.
  • 我的所有视觉更新都发生在主线程上.我总是确保这一点.
  • 问题并不是普遍存在,而是经常存在.如果它有帮助,它们似乎在插入第二个细胞后发生更多.
  • -(void)layoutSubviews在我的单元格中记录该方法表明,每次更新时,具有更新条件的单元格会连续重新加载3次,而其他单元格只会更新一次.我不是强迫任何[cell layoutIfNeeded];[cell setNeedsLayout];任何地方.
  • 重新加载整个表视图[self.tableView reloadData];不是我的选择.

更多信息

  • 使细胞变得不透明导致细胞只被布置一次!奇怪的!

最后,我很抱歉我不能分享任何实际的代码,因为它不是一个测试项目,并且实现的复杂性使得任何代码共享都是徒劳的,除非作为一个整体被理解.

谢谢你的时间.

performance objective-c uitableview ios asyncdisplaykit

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

此应用程序不允许查询方案 XYZ://

您可能认为这是一个重复的问题,但事实并非如此,我完全了解 SO 关于canOpenURLiOS 9 及其警告的所有答案,但这是我的问题:

我正在尝试检查我的设备上是否安装了特定的应用程序(均由我开发)。我已宣布该计划AppA为:

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>com.my.company.id</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>XYZ</string>
        </array>
    </dict>
</array>
Run Code Online (Sandbox Code Playgroud)

在另一个应用程序上,AppB我在 info.plist 中添加了:

<key>LSApplicationQueriesSchemes</key>
<array>
 <string>XYZ</string>
</array> 
Run Code Online (Sandbox Code Playgroud)

现在,AppB我试图找出我是否AppA安装了这样的:

     internal static let appAScheme = "XYZ://"

 static func  AppAInstalled() -> Bool {

    let appAURL = NSURL(string: appAScheme)

    return UIApplication.sharedApplication().canOpenURL(appAURL!)


}
Run Code Online (Sandbox Code Playgroud)

它总是返回

-canOpenURL:URL 失败:“XYZ://” - 错误:“此应用程序不允许查询方案 XYZ”

但是,如果我尝试AppAAppB它打开它,它将毫无问题地工作!

// Works alright
UIApplication.sharedApplication().openURL(appAURL!)
Run Code Online (Sandbox Code Playgroud)

我想不通为什么!

uiapplication custom-url swift ios9 xcode7.2

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