2
self.refreshControl.tintColor = [UIColor blueColor];//this just only change it color

ドロップダウン矢印を画像や別の形に変更できますか? どのように?

どうもありがとう!

4

2 に答える 2

3

いいえ。矢印の色のみを変更できますが、矢印自体は変更できません。そうしたい場合は、機能強化リクエストを提出してください。検討されます。

もちろん、自分で作成したり、オープン ソースのバリアントを使用したりすることもできます。

于 2012-10-23T06:12:33.933 に答える
0

非表示の API バージョン (私の実際のコードでは、maskImage は UIImage のカテゴリです)。Appleがこれを拒否するかどうかはわかりません。

static UIImage *maskImage(UIImage *image, UIColor *color) {
    UIImage *retval;
    CGRect rect = CGRectMake(0, 0, image.size.width, image.size.height);
    UIGraphicsBeginImageContextWithOptions(image.size, NO, image.scale);
    [color set];
    CGContextFillRect(UIGraphicsGetCurrentContext(), rect);
    [image drawAtPoint:CGPointZero blendMode:kCGBlendModeDestinationIn alpha:1];//
    retval = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return retval;
}

@protocol UIRefreshHacking <NSObject>
-(UIImageView*)arrow;
@end

@interface UIRefreshControl (GetAtContentView)
-(UIView<UIRefreshHacking>*)_contentView;
@end

@implementation UIRefreshControl (ChangeArrowColor)
-(BOOL)setArrowColor:(UIColor *)arrowColor {
    if(![self respondsToSelector:@selector(_contentView)]) {
        return NO;
    }
    UIView<UIRefreshHacking> *cv = [self _contentView];
    if(![cv respondsToSelector:@selector(arrow)]) {
        return NO;
    }
    UIImageView *iv = [cv arrow];
    iv.image = maskImage(iv.image, arrowColor);
    return YES;
}
@end
于 2013-01-05T21:19:04.280 に答える