首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用UIAppearance渲染图像

使用UIAppearance渲染图像
EN

Stack Overflow用户
提问于 2013-07-31 13:12:46
回答 1查看 194关注 0票数 1

我有一个问题,渲染一个视图控制器的图像,它有一个自定义am外观集的滑块。图像渲染效果很好,但是,图像中的滑块仅具有默认外观。如果我转到viewcontroller (vc2),to外观将设置为自定义外观。有什么想法可以用自定义滑块外观来渲染图像吗?

我在第一个视图控制器上有一个UIImageView。在第二个View Controller上,我有一个滑块。

ViewController.m

代码语言:javascript
复制
ViewController *vc2 = [[ViewController alloc]init];
vc2 = [self.storyboard instantiateViewControllerWithIdentifier:@"vc2"];
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size,NO,0.0);
[vc2.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
[_image setImage:viewImage];

AppDelegate.m

代码语言:javascript
复制
 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary      *)launchOptions
    {
    [self customizeAppearance];
    // Override point for customization after application launch.
    return YES;
    }
    - (void) customizeAppearance; {
    UIImage *minImage = [[UIImage imageNamed:@"slider_minimum.png"]
                         resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 0)];
    UIImage *maxImage = [[UIImage imageNamed:@"slider_maximum.png"]
                         resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 13)];
    UIImage *thumbImage = [UIImage imageNamed:@"slider_thumb.png"];

    [[UISlider appearance] setMaximumTrackImage:maxImage
                                       forState:UIControlStateNormal];
    [[UISlider appearance] setMinimumTrackImage:minImage
                                       forState:UIControlStateNormal];
    [[UISlider appearance] setThumbImage:thumbImage
                                forState:UIControlStateNormal];
    [[UISlider appearance] setThumbImage:thumbImage
                                forState:UIControlStateHighlighted];

    }
EN

回答 1

Stack Overflow用户

发布于 2013-07-31 14:10:03

多亏了@PartiallyFinite方向,我想我需要在ViewController内部做以下事情:

代码语言:javascript
复制
UIImage *minImage = [UIImage imageNamed:@"slider_minimum.png"];
UIImage *maxImage = [UIImage imageNamed:@"slider_maximum.png"];
UIImage *tumbImage= [UIImage imageNamed:@"slider_thumb.png"];

minImage = [minImage resizableImageWithCapInsets:UIEdgeInsetsMake(0, 3, 0, 0)];
maxImage = [maxImage resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 13)];

[_slider setMinimumTrackImage:minImage forState:UIControlStateNormal];
[_slider setMaximumTrackImage:maxImage forState:UIControlStateNormal];
[_slider setThumbImage:tumbImage forState:UIControlStateNormal];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17962111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档