如何显示BLE RSSI作为信号强度棒iPhone

时间:2016-04-15 14:38:14

标签: ios objective-c signal-strength

我正在编写一个显示BLE设备列表的应用程序。

我想以图形方式显示每个设备的信号强度,如蜂窝信号条而不是实际数字。

有谁知道怎么做?

2 个答案:

答案 0 :(得分:0)

1)你可以做一些快速而又脏的事情,比如创建一堆表示每个栏的UIViews,然后根据BLE设备的强度隐藏/显示它们。

2)或者您可以根据信号强度创建一组图像并选择要显示的正确图像。

3)或者你可以走核心图形路线(https://developer.apple.com/library/mac/documentation/GraphicsImaging/Conceptual/drawingwithquartz2d/dq_paths/dq_paths.html#//apple_ref/doc/uid/TP30001066-CH211-TPXREF101

答案 1 :(得分:0)

您可以使用UIImageView仅渲染图片的一部分。让我们分解一下:

  1. 让图片显示完整的条形图;
  2. 放置UIImageView以在屏幕上显示您的图片;
  3. 创建CGRect以分割部分您的图片并将其设置在your_image_view.layer.contentsRect上 - 请注意1.0 = 100%;
  4. 使用CGRect;
  5. 控制图像的哪些部分

    示例:

    UIImageView *view = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    CGRect frame = CGRectMake(/* x */ 0, /* y */ 0.5, /* width */ 1, /* height */ 0.25);
    view.layer.contentsRect = frame;
    view.image = [UIImage imageNamed:@"ble_bars.png"];
    

    阅读有关CGMakeRectcontentsRect的文档可以为您提供帮助。