小编War*_*ple的帖子

iPhone 5/5th Gen iPod Touch的加速度计/陀螺仪限制的变化?

当iPhone 4和第4代iPod Touch问世时,我正在玩Apple的Core Motion传感器融合算法,看看我是否可以获得任何有趣的结果,用于非常局部的航位推算(在几英寸或几英尺的范围内).鉴于MEMS传感器的规格相对较低,我没想到会有什么惊人之处.虽然Apple的CMDeviceMotion gravity财产使用了一种不错的(虽然是不透明的)传感器融合算法,但补充userAcceleration属性并不完全针对航位推算.尽管如此,我认为可能还有足够的乐趣.

iPhone 4,iPhone 5,第4代iPod Touch和第5代iPod Touch显然都使用STMicroelectronics LIS331DLH加速度计和L3G4200D陀螺仪.(实际上,我还没有看到iTouch-5陀螺仪的部件号,所以可能会有所不同.)

拆解:iPhone-4,iTouch-4,iPhone-5,iTouch-5

ST规格表明,加速度计可以在1000 Hz时采样,最高可达±8g.该陀螺仪可以800 Hz的频率采样,最高可达±2000 dps.

规格:LIS331DLH,L3G4200D

但是,使用我的第4代iPod Touch(iOS 5和iOS 6),我只能将采样率调高到100 Hz.如果我设置CMMotionManager deviceMotionUpdateInterval低于0.01,它会自动重置为0.01.同样的accelerometerUpdateIntervalgyroUpdateInterval.

此外,加速度计输出似乎总是限制在±2g左右.

我已经看到其他人对iPhone 4的类似界限发表评论.

这两个界限严重限制了我可以挤出设备的局部加速度计算(试验我的第四代iPod touch).我认为Apple已将这些限制设置为低,以降低功耗.虽然我不知道它们是设置在硬件中,还是设置在iOS中的某个地方.

有没有人在iPhone 5或第5代iPod Touch上使用这些加速度计和陀螺仪界限?(或任何iPad?)任何高于100赫兹的采样率?任何加速度计测量超出±2g的范围?

iphone accelerometer ipod-touch ios gyroscope

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

为什么[弱自我]工作但是[无主自我]在Swift闭包中中断?

通过完成闭包调用自身来重复此SpriteKit操作.它使用闭包而不是a SKAction.repeatActionForever(),因为它需要在每次重复时生成随机变量:

class Twinkler: SKSpriteNode {
  init() {
    super.init(texture:nil, color:UIColor.whiteColor(), size:CGSize(width:10.0, height:10.0))
    twinkle()
  }
  func twinkle() {
      let rand0to1 = CGFloat(arc4random()) / CGFloat(UINT32_MAX)
      let action = SKAction.fadeAlphaTo(rand0to1, duration:0.1)
      let closure = {self.twinkle()}
      runAction(action, completion:closure)
  }
}
Run Code Online (Sandbox Code Playgroud)

我认为我应该使用[unowned self]以避免与闭包的强引用循环.当我这样做时:

let closure = {[unowned self] in self.twinkle()}
Run Code Online (Sandbox Code Playgroud)

它崩溃了错误:_swift_abortRetainUnowned.但如果我[weak self]改用:

let closure = {[weak self] in self!.twinkle()}
Run Code Online (Sandbox Code Playgroud)

它执行没有错误.为什么会[weak self]工作但是[unowned self]打破?我应该在这里使用其中任何一种吗?

Twinkler对象在程序的其他地方被强烈引用,作为另一个节点的子对象.所以我不明白[unowned self]参考是如何打破的.它不应该被解除分配.

我尝试在SpriteKit之外复制这个问题dispatch_after(),但我无法做到.

closures sprite-kit swift

12
推荐指数
3
解决办法
7939
查看次数

CSS流体图像替换?

使用CSS将文本替换为图像是众所周知的做法.CSS-Tricks有一些技术博物馆(http://css-tricks.com/examples/ImageReplacement/).

但是这些都不允许用流体图像替换(例如,横跨100%流体页面布局的徽标).是否可以使用CSS进行流体图像替换?

几乎所有图像替换技术都使用背景图像.我知道你可以设置background-size: 100%.但是,将文本元素的高度与其宽度一起缩放并不是直截了当的,因为浏览器不会将背景图像视为内容的一部分.

据我所知,任何常见的图像替换技术都可以轻松地与媒体查询相结合,逐步将文本元素的大小更改为特定的高度x宽度比率.但这是增量的,而不是流动的.

我找到了一篇讨论此内容的博客文章(http://viljamis.com/blog/2011/fluid-image-replacement.php).但事实证明,实际上需要在html内容中放置一个图像.我正在寻找真正的文本替代品.

css background-image responsive-design

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