Является ли UIBezierPath лучшим способом сделать подвижный скругленный прямоугольник? - PullRequest
0 голосов
/ 13 ноября 2011

Я делаю UISlider с нуля. Я начал с создания прямоугольника со скругленными углами, что я и сделал с помощью кода ниже:

CGRect frame = CGRectMake(10, 10, self.frame.size.width, 10);

UIBezierPath* path = [UIBezierPath bezierPathWithRoundedRect:frame cornerRadius:10.0];
[[UIColor blueColor] setFill];
[path fill];

Я видел несколько других вариантов сделать скругленный прямоугольник, но подумал, что это самый быстрый способ. Существуют ли какие-либо ограничения при создании UIBezierPath? А именно, ползунок должен быть в состоянии перемещаться при сенсорных событиях, поэтому я хочу изменить свойство center BezierPath. Возможно ли это?

1 Ответ

1 голос
/ 13 ноября 2011

Вам потребуется либо заново создавать путь Безье каждый раз, когда вам нужно изменить положение ползунка, либо использовать матрицу преобразования CGContext, чтобы нарисовать его в другом месте.

Я предлагаю вам взглянуть на использование CALayer для движущейся части ползунка. Нарисуйте канал ползунка в view.layer и добавьте подслой, в котором вы рисуете «большой палец» ползунка. Затем вы можете просто переместить слой большого пальца, когда вам нужно переместить его.

...