Я создаю пользовательскую панель выполнения для своего приложения.Обновление пользовательского UIView
Я подклассифицировал UIView
и весь чертеж обрабатывается в drawRect
.
Теперь пользовательский индикатор выполнения имеет 6 свойств, которые изменяют способ отображения.
minProgress
maxProgress
progress
onColor
offColor
numberOfSections
Все это набор значений по умолчанию в подклассе, но есть несколько мест, где все эти значения изменяются в методе viewWillAppear контроллера.
На данный момент я написал функцию сеттер для всех свойств, которые выглядят, как это ...
- (void)setProgress:(float)progress
{
_progress = progress;
[self setNeedsDisplay];
}
Но это означает, что метод DrawRect будет называться 6 раз, прежде чем на самом деле показываются на экране ? Кажется, это плохой способ сделать это.
Правильно ли я об этом? Есть ли другой способ сделать это?
Нет необходимости называть '[self setNeedsDisplay];'. У меня есть представление, которое управляет индикатором выполнения, и я не вызываю этот метод, а индикатор выполнения меняет значение, когда я запрашиваю – CainaSouza
. Потому что изменение самого свойства не будет перерисовывать вид. Только вызов setNeedsDisplay приведет к обновлению представления. – Fogmeister
У меня есть представление, которое управляет индикатором выполнения, и я не вызываю этот метод, и индикатор выполнения изменяет его значение, когда я запрашиваю – CainaSouza