Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 它';在UIImageView中更改图像时,可以添加溶解转换,但最初添加时又如何?_Ios_Objective C_Uiview_Uiimageview - Fatal编程技术网

Ios 它';在UIImageView中更改图像时,可以添加溶解转换,但最初添加时又如何?

Ios 它';在UIImageView中更改图像时,可以添加溶解转换,但最初添加时又如何?,ios,objective-c,uiview,uiimageview,Ios,Objective C,Uiview,Uiimageview,假设我添加了一个UIImageView,我想将它分解,这样它就不会显得很尖锐,而是更平滑一些。这可能吗 如回答中所述,您可以将更改分解为: UIImage * toImage = [UIImage imageNamed:@"myname.png"]; [UIView transitionWithView:self.imageView duration:5.0f options:UIViewAnimationOptionTr

假设我添加了一个UIImageView,我想将它分解,这样它就不会显得很尖锐,而是更平滑一些。这可能吗

如回答中所述,您可以将更改分解为:

UIImage * toImage = [UIImage imageNamed:@"myname.png"];
[UIView transitionWithView:self.imageView
                  duration:5.0f
                   options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^{
                  self.imageView.image = toImage;
                } completion:nil];

只是好奇添加是否可以得到类似的处理。

尝试最初添加一个完全空白的图像,然后将其更改为您选择的图像-这将为您提供所需的“添加时溶解动画”感觉

您的代码将实现您想要的功能,只需使用以下代码进行尝试: (顺便说一句:不要在viewDidLoad:中调用transitionWithView:,imageView的动画在viewDidLoad中不起作用)

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
@property (weak, nonatomic) IBOutlet UIImageView *imageView;

@end
@interface ViewController ()
@property (strong,nonatomic) UIImage * imageOne;
@property (strong,nonatomic) UIImage * imageTwo;
@end

@implementation ViewController

- (void)viewDidLoad
{
  self.imageOne = [UIImage imageNamed:@"a.jpg"];
  self.imageTwo = [UIImage imageNamed:@"b.jpg"];
  [super viewDidLoad];

}

- (void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    //init imageView here
    if(self.imageView.image == nil){
        [self performSelector:@selector(handleButtonTouch:) withObject:nil afterDelay:1];
    }
}

- (IBAction)handleButtonTouch:(id)sender {

  UIImage * toImage = ([self.imageView.image isEqual:self.imageOne]) ? self.imageTwo : self.imageOne;

  [UIView transitionWithView:self.imageView
                    duration:3.0f
                     options:UIViewAnimationOptionTransitionCrossDissolve
                  animations:^{
                    self.imageView.image = toImage;
                  }
                  completion:NULL];
}
@end

你可以通过一点实验很容易地回答这个问题。所以,试试看会发生什么,我做到了。没用。嗯。。。。我试过的时候确实是这样。我将一个图像视图拖到画布中,并对其进行约束(左、上、宽、高),然后将您发布的代码添加到按钮方法中。