Я использовал библиотеку TSRDialScrollView, чтобы выполнить требования дизайна в моем коде.
Но не смог решить несколько вопросов.
По ссылке ниже:
https://www.cocoacontrols.com/controls/trsdialsscrollview
Я сделал несколько изменений в своем коде
-> Чтобы очистить цвет фона
CGContextRef context = UIGraphicsGetCurrentContext();
[[UIColor clearColor] set];
CGContextFillRect(context, rect);
Но он отображает черный цвет.
-> Установка метки после инвертирования вида
- (void)drawLabelWithContext:(CGContextRef)context
atPoint:(CGPoint)point
text:(NSString *)text
fillColor:(UIColor *)fillColor
strokeColor:(UIColor *)strokeColor {
// We want the label to be centered on the specified x value
NSInteger label_y = ((point.y-100) - (boundingBox.width / 2));
}
-> Инвертировал весь вид, изменив длину младшего и основного тика на отрицательную в коде.
- (void)drawTicksWithContext:(CGContextRef)context atX:(long)x
{
CGPoint point = CGPointMake(x, self.frame.size.height);
CGContextSetShadowWithColor(
context,
self.shadowOffset,
self.shadowBlur,
self.shadowColor.CGColor);
if ([self isMajorTick:x]) {
[self drawMajorTickWithContext:context
atPoint:point
withColor:self.majorTickColor
width:self.majorTickWidth
length:-self.majorTickLength];
// Draw the text
//
// 1) Take the existing position and subtract off the lead spacing
// 2) Divide by the minor ticks to get the major number
// 3) Add the minimum to get the current value
//
int value = (point.x - self.leading) / self.minorTickDistance + _minimum;
NSString *text = [NSString stringWithFormat:@"%i", value];
[self drawLabelWithContext:context
atPoint:point
text:text
fillColor:self.labelFillColor
strokeColor:self.labelStrokeColor];
} else {
CGContextSaveGState(context);
[self drawMinorTickWithContext:context
atPoint:point
withColor:self.minorTickColor
width:self.minorTickWidth
length:-self.minorTickLength];
// Restore the context
CGContextRestoreGState(context);
}
}
Я хочу, чтобы масштабирование было выполнено, как показано ниже.
1) Путем регулировки смещения представление прокрутки должно быть посередине (т.е. когда оно прокручивается до минимального значения, позиция 0 не находится в середине представления).
2) Я хочу, чтобы цвет фона был четким.
3) В соответствии с дизайном, как установить красный цвет на среднюю линию, которая должна быть закреплена?
4) Как отобразить светло-серый цвет посередине, как показано на рисунке?
Я ценю вашу помощь и, пожалуйста, предложите, как этого добиться, действительно мне нужно выполнить эту задачу, она очень нужна.
Заранее спасибо.