2012-05-06 45 views
1

我试图让麦克风电平波动的酒吧,但难以让它在向上的方向上波动。下面的代码Xcode:frame.size.height更改使视图的高度在向下方向变化?

- (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

我试图寻找在该视图的产地选择,但高度仍在增加至底部而非顶部 – davis

回答

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; 
} 
+0

完美。谢谢 – davis