【问题标题】:Using Lightsensor使用光传感器
【发布时间】:2015-09-23 12:10:43
【问题描述】:

我想在用户环境较暗时更改一些按钮、文本和背景颜色。我想使用用于自动亮度的 iPhone 的内置光传感器。我产生了这个想法,因为我注意到 iBooks 也这样做。有人知道怎么做吗?我只是一个初学者,如果我犯了语言错误,很抱歉:s

提前谢谢你!

编辑:

还有另一种方法可以做到这一点,我找到了这段代码,但它是在 Objective-C 中的……有人可以把它翻译成 swift 吗?

【问题讨论】:

  • 我认为不可能。
  • 该死...我找到了这个,但它是在 Objective-C 中的...有人能把它翻译成 swift 吗?:stackoverflow.com/a/22836060/1228723
  • 你试过自己转换吗?
  • 不,但我只是一个初学者,我不太懂 Objective-C :(

标签: iphone swift ios8


【解决方案1】:

试试这个:

func captureOutput(captureOutput: AVCaptureOutput, didOutputSampleBuffer sampleBuffer: CMSampleBufferRef, fromConnection connection: AVCaptureConnection) {
    var metadataDict: CFDictionaryRef = CMCopyDictionaryOfAttachments(nil, sampleBuffer, kCMAttachmentMode_ShouldPropagate)
    var metadata: [NSObject : AnyObject] = NSMutableDictionary(dictionary: metadataDict)
    CFRelease(metadataDict)
    var exifMetadata: [NSObject : AnyObject] = metadata[kCGImagePropertyExifDictionary].mutableCopy()
    var brightnessValue: Float = exifMetadata[kCGImagePropertyExifBrightnessValue].floatValue()
    if brightnessValue > 0.5 {
        self.view.backgroundColor = UIColor.whiteColor()
    }
    else{
       self.view.backgroundColor = UIColor.blackColor()
    }

}

【讨论】:

  • 我必须先写“import ImageIO”吗?
  • 谢谢,现在例如,如果我想读取亮度级别来更改背景颜色,我必须写:“如果亮度值 > 0.5 { UIView.backgroundColor = UIColor.whiteColor }”
  • 我回家后会接受答案并可以测试它!n谢谢!你也可以回答我之前的评论吗? @TejasArdeshna
  • 我现在正在测试代码,但是我得到了一堆错误...我想可能需要更改这段代码中的某些内容?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多