2010-12-20 92 views
0

我有一个2 UIViews和2 UILabels与IBOutlet在我的控制器的笔尖。UIView的定位不正确

我增加和减少这些UIViews的高度看起来像一个酒吧,以指示何时是100%或更少 - 几乎像条形图。

我对这两个小节(重用)使用以下方法,但第一个UIView(bar)位置正确,但第二个太低 - Y轴错误。然而,两者的高度是正确的。

任何人有任何想法?我在界面生成器放置在它们均已我其实在做这种方法改变高度(基本)

//Position the point, size and label of a rating bar 
- (void)configureRatingBar:(UIView *)vRatingBar 
      andRatingLabel:(UILabel *)lRatingLabel 
       usingRating:(NSDecimalNumber *)rating 
{ 
    //NSDecimalNumber *foodRating = [self calculateRating:self.currentHotel.foodAndBeverageRating]; 
    NSString *formattedRating = [self formatRating:rating]; 
    lRatingLabel.text = formattedRating; 

    float newHeight = [rating floatValue]; //The height will be based on the rating 100 max 
    CGRect currentFrame = vRatingBar.frame; //Current frame of the rating view 

    //CGPoint currentPoint = 
    // [vRatingBar convertPoint:vRatingBar.frame.origin toView:vReviews]; 




    CGPoint currentPoint = vRatingBar.frame.origin; //Current point of the rating view 
    float newYaxis = currentPoint.x + (100 - newHeight); //Y axis must move down with the decreasing rating from 0 (100 %) down 

    [vRatingBar setFrame:CGRectMake(currentPoint.x, newYaxis, currentFrame.size.width, newHeight)]; 
    [lRatingLabel setFrame:CGRectMake(currentFrame.size.width/34, newHeight - 20, 34, 21)]; 

} 

回答

0

我看你有没有这条线:

float newYaxis = currentPoint.x + (100 - newHeight); //Y axis must move down with the decreasing rating from 0 (100 %) down 

如果您使用的是当前点。 x用于计算。这应该是currentPoint.y?

+0

我不敢相信我忽略了那个!谢了哥们。我无法理解为什么第一个“控制”正确地绘制,但第二个不是 - 只能是侥幸!你摇滚! – TheLearner 2010-12-21 11:13:45