我正在尝试使用随着麦克风水平而变化的条形图,但是在向上方向上波动时却遇到了麻烦。这是代码
- (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开始,当麦克风变为活动状态时,高度会延长,但向下方向。我试图通过给出视图负高度值来解决这个问题,但是视图不能具有负高度。有没有人知道如何在向上的方向上改变高度?感谢。
答案 0 :(得分: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;
}