Это не решение IB, но вы можете создать подкласс UIView и переопределить метод drawRect
, чтобы добавить собственный градиент. Это позволит вам выбрать любое количество цветов и сделать так, чтобы они были плавными или плавными. В Интернете есть много хороших учебных пособий, в которых должны быть разные способы (некоторые более сложные, некоторые довольно простые).
Еще один довольно простой вариант - переопределить drawRect
, сделать фон красным, а затем fill
прямоугольником, который занимает нижнюю половину вида. Он не допускает причудливых или плавных переходов между цветами, но его очень легко реализовать. Например, что-то вроде этого должно работать:
-(void)drawRect:(CGRect)rect {
CGRect upperRect = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height * percentDone);
CGRect lowerRect = CGRectMake(rect.origin.x, rect.origin.y + (rect.size.height * percentDone), rect.size.width, rect.size.height *(1-percentDone));
[[UIColor redColor] set];
UIRectFill(upperRect);
[[UIColor greenColor] set];
UIRectFill(lowerRect);
}
Здесь percentDone
- это число с плавающей запятой (объявите, property(nonatomic)
, synthesize
), которое вы можете привязать к шагам пользователя. Затем просто обновите представление, когда пользователь что-то делает, с помощью
splitView.percentDone = .5;
[splitView setNeedsDisplay];
Вы также можете сгладить это с помощью анимации.