1

我正在尝试制作一个随麦克风电平波动的条形图,但无法让它向上波动。这是代码

- (void)setVUMeterHeight:(float)height {
     if (height < 0)
        height = 0;

     CGRect frame = vuMeter.frame;
     frame.size.height = height+10;
     vuMeter.frame = frame;
}

- (void)updateVUMeter {
float height = (90+voiceSearch.audioLevel)*5/2;

     [self setVUMeterHeight:height];    
     [self performSelector:@selector(updateVUMeter) withObject:nil afterDelay:0.05];
}

问题是高度从 10px 开始,当麦克风激活时,高度会延长,但方向是向下的。我试图通过给视图提供负高度值来解决这个问题,但视图不能有负高度。有谁知道如何让高度向上变化?谢谢。

4

1 回答 1

2

将原点向上扩展与扩展大小相同的量。

就像是:

- (void)setVUMeterHeight:(float)height {
     if (height < 0)
        height = 0;

     const CGFloat kMeterBottom = 200;
     CGRect frame = vuMeter.frame;
     frame.size.height = height+10;
     frame.origin.y = kMeterBottom - frame.size.height;
     vuMeter.frame = frame;
}
于 2012-05-06T04:04:22.253 回答