亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

iOS自定義滑桿效果

 更新時(shí)間:2022年04月26日 17:24:41   作者:ChasingDreamsCoder  
這篇文章主要為大家詳細(xì)介紹了iOS自定義滑桿效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了iOS自定義滑桿的具體代碼,供大家參考,具體內(nèi)容如下

先讓我們看看效果:

主要實(shí)現(xiàn)的代碼:

UIImage *thumbWithLevel(float aLevel)
{
? ? float INSET_AMT = 1.5f;
? ? CGRect baseRect = CGRectMake(0, 0, 40, 100);
? ? CGRect thumbRect = CGRectMake(0, 40, 40, 20);
? ??
? ? UIGraphicsBeginImageContext(baseRect.size);
? ? CGContextRef context = UIGraphicsGetCurrentContext();
? ??
? ? [[UIColor darkGrayColor] setFill];
? ? CGContextAddRect(context, CGRectInset(thumbRect, INSET_AMT, INSET_AMT));
? ? CGContextFillPath(context);
? ??
? ? [[UIColor whiteColor] setStroke];
? ? CGContextSetLineWidth(context, 2);
? ? CGContextAddRect(context, CGRectInset(thumbRect, 2 * INSET_AMT, 2 * INSET_AMT));
? ? CGRect ellipseRect = CGRectMake(0, 0, 40, 40);
? ? [[UIColor colorWithWhite:aLevel alpha:1] setFill];
? ? CGContextAddEllipseInRect(context, ellipseRect);
? ? CGContextFillPath(context);
? ??
? ? NSString *numString = [NSString stringWithFormat:@"%0.2f",aLevel];
? ? UIColor *textColor = (aLevel > 0.5) ? [UIColor blackColor] : [UIColor whiteColor];
? ? UIFont *font = [UIFont fontWithName:@"Georgia" size:15];
? ? NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
? ? style.lineBreakMode = NSLineBreakByCharWrapping;
? ? style.alignment = NSTextAlignmentCenter;
? ? NSDictionary *attr = @{NSFontAttributeName:font,NSParagraphStyleAttributeName:style,NSForegroundColorAttributeName:textColor};
? ? [numString drawInRect:CGRectInset(ellipseRect, 0, 6) withAttributes:attr];
? ??
? ? [[UIColor grayColor] setStroke];
? ? CGContextSetLineWidth(context, 3);
? ? CGContextAddEllipseInRect(context, CGRectInset(ellipseRect, 2, 2));
? ? CGContextStrokePath(context);
? ??
? ? UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext();
? ? UIGraphicsEndImageContext();
? ??
? ? return ?theImage;
}

在這里我們通過context的方法將圖片畫出了,對(duì)于性能有點(diǎn)要求,但是現(xiàn)在應(yīng)該不在乎這點(diǎn)性能了

- (void)updateThumb
{
? ? if ((self.value < 0.98) && (ABS(self.value - previousValue) < 0.1f)) {
? ? ? ? return;
? ? }
? ??
? ? UIImage *customImg = thumbWithLevel(self.value);
? ? [self setThumbImage:customImg forState:UIControlStateHighlighted];
? ? previousValue = self.value;
}

通過滑塊的值來使上面的值進(jìn)行變化,更加的直觀

[self setThumbImage:simpleThumb() forState:UIControlStateNormal];
? [self addTarget:self action:@selector(startDrag:) forControlEvents:UIControlEventTouchDown];
? [self addTarget:self action:@selector(updateThumb) forControlEvents:UIControlEventValueChanged];
? [self addTarget:self action:@selector(endDrag:) forControlEvents:UIControlEventTouchUpOutside | UIControlEventTouchUpInside];

對(duì)于不同的狀態(tài)來進(jìn)行不同的操作,讓滑桿的用戶體驗(yàn)度更加的完整

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論