首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

iOS 自訂 UIProgressView 與進度球位置控制

     編輯:程式設計綜合問答

自訂 UIProgressView 時,若發現進度球無法顯示在起始位置,通常與進度值對應的座標計算有關。可參考 UISlider 的設計概念,至少應包含 minValue、maxValue 與 value 三個屬性。

實作重點

  • 當 value 為 0 時,進度球應位於初始位置(水平方向 x=0,垂直方向 y=0)。
  • 根據目前進度比例計算球體中心:x = (value - minValue) / (maxValue - minValue) * 可用寬度。
  • 根據控件方向決定是沿 X 軸或 Y 軸移動。
  • 在 setValue 方法中更新球體 frame,並呼叫 setNeedsDisplay 重新繪製。
-(void)setValue:(float)value {
    _value = value;
    CGFloat perValue = self.bounds.width / maxValue;
    int x = (int)(value * perValue);
    circle.frame = CGRectMake(x, ...);
    [self setNeedsDisplay];
}

這樣即可確保進度球隨數值變化而正確移動,且在起始值時位於起點。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved