+3  A: 

For your first question, I would think that CGAffineTransform would be the way to go. Using this, I would think something like this could work:

// BarView is a derived class from UIView that knows how to draw a "bar"
BarView view[NumBars];
for(int i = 0; i < NumBars; i++)
{
  // First place the view at the center of the instrument
  [view[i] setCenter:CGPointMake(InstrumentX, InstrumentY)];

  // Now translate the view InstrumentWidth units on the positive X-Axis
  CGAffineTransform translate = CGAffineTransformMakeTranslation(InstrumentWidth, 0);

  // Rotate the view about the origin by an angle related to which "bar" this is
  CGAffineTransform rotate = CGAffineTransformMakeRotation(i*AngleBetweenBars);

  // create a transform matrix from the translation and rotation matrices and apply it to the view
  [view[i] setTransform:CGAffineTransformConcat(translate, rotate)];   
}
Andrew Garrison
I'm no expert with CGAffineTransform, but doesn't this code just draws the bar in a circular fashion? Does it actually light up the bars around the circle in an animation?
erotsppa
yes, this code will just draw the bars in a circle around the perimeter of the instrument.
Andrew Garrison