2015-06-22 9 views
5

मैं एक छवि दृश्य के लिए लंबन प्रभाव प्राप्त करने की कोशिश कर रहा हूं। लंबन प्रभाव के लिए कोड सरल है और यह केवल तभी काम कर रहा है यदि मैं UIImageUIImageView जोड़ता हूं। मेरे पास एक पैटर्न छवि है जिसे दोनों तरफ खुद को टाइल करने की आवश्यकता है।पैटर्न छवि के साथ लंबन प्रभाव कैसे प्राप्त करें?

तो मुझे patternWithImageUIColor विधि का उपयोग करना पड़ा। जब मैं उस लंबन काम करता हूं, लेकिन जब मैं डिवाइस को झुकाता हूं तो मैं किनारों में self.view का पृष्ठभूमि रंग देख सकता हूं।

यहाँ यह एक कोड है:

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    // Do any additional setup after loading the view. 

    self.backgroundImageView.contentMode = UIViewContentModeCenter; 
    self.backgroundImageView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"connect"]]; 
    [self addParallaxEffectToView:self.backgroundImageView]; 
} 

- (void)addParallaxEffectToView:(UIView *)view 
{ 
    // Set vertical effect 
    UIInterpolatingMotionEffect *verticalMotionEffect = 
    [[UIInterpolatingMotionEffect alloc] 
    initWithKeyPath:@"center.y" 
    type:UIInterpolatingMotionEffectTypeTiltAlongVerticalAxis]; 
    verticalMotionEffect.minimumRelativeValue = @(-50); 
    verticalMotionEffect.maximumRelativeValue = @(50); 

    // Set horizontal effect 
    UIInterpolatingMotionEffect *horizontalMotionEffect = 
    [[UIInterpolatingMotionEffect alloc] 
    initWithKeyPath:@"center.x" 
    type:UIInterpolatingMotionEffectTypeTiltAlongHorizontalAxis]; 
    horizontalMotionEffect.minimumRelativeValue = @(-50); 
    horizontalMotionEffect.maximumRelativeValue = @(50); 

    // Create group to combine both 
    UIMotionEffectGroup *group = [UIMotionEffectGroup new]; 
    group.motionEffects = @[horizontalMotionEffect, verticalMotionEffect]; 

    // Add both effects to your view 
    [view addMotionEffect:group]; 
} 

कोड स्विफ्ट या ऑब्जेक्टिव-सी में हो सकता है। किसी भी सहायता की सराहना की जाएगी। धन्यवाद

संपादित करें: @Clafou सुझाव के अनुसार, मैं जब मैं धक्का और पॉप एनिमेशन करने की कोशिश एक अजीब लग रहे हो रही है।

enter image description here

+0

क्या आपने यह जांच लिया है: http://stackoverflow.com/questions/21544402/moving-an-image-with-ios-7-parallax-effect? मैंने कोशिश नहीं की है, इसलिए यह नहीं पता कि यह आपकी समस्या का समाधान करेगा या नहीं। – Mrunal

+0

मैं आपके संपादन से उलझन में हूँ! "जब मैं पुश करने और पॉप एनिमेशन करने की कोशिश करता हूं" का क्या मतलब है? क्या आप गति में क्या होता है यह दिखाने के लिए एनिमेटेड जीआईएफ जोड़ सकते हैं? – Clafou

+1

यदि आपने रूट व्यू की सीमाओं के बाहर फैलाने के लिए अपने विचारों को बदल दिया है, तो मुझे लगता है कि आप दृश्य नियंत्रक संक्रमण के दौरान उन हिस्सों को दिखाने के लिए self.view.clipsToBounds = true में सही सेट करना चाहते हैं। – Stefan

उत्तर

3

मुझे लगता है कि आपके backgroundImageView जरूरतों अपने कंटेनर के किनारों के बाहर का विस्तार करने के बाद से अपने प्रभाव यह परिवर्तन होगा।

एक त्वरित परीक्षण के रूप में, यदि आप ऑटोलाउट का उपयोग नहीं करते हैं तो आप ViewDidLoad के अंत में self.backgroundImageView.frame = CGRectInset(self.backgroundImageView.frame, -50, -50); जोड़ सकते हैं।

यदि आप ऑटोलाउट का उपयोग करते हैं, तो backgroundImageView अपने कंटेनर के फ्रेम से आगे बढ़ाने के लिए अपनी बाधाओं को बदलें।

+0

मेरे प्रश्न संपादित करें! –

संबंधित मुद्दे