2012-09-12 26 views
6

मैं फ्लिप एनीमेशन करते समय UIPageViewController छाया रंग बदलने की कोशिश कर रहा हूं। लेकिन हमेशा यह केवल सफेद रंग प्रदर्शित करता है। फ्लिप साइड पृष्ठभूमि रंग का रंग अन्य रंगों जैसे काले (सेफिया) को कैसे बदलें। आईबुक एक ही काम कर रहा है।शैडो पृष्ठभूमि को अन्य रंगों में सफेद कैसे बदलें

मैं उल्लेख करता हूं कि नीचे दी गई छवि में सफेद बीजी है जिसे मैं बदलना चाहता हूं।

स्क्रीनशॉट: enter image description here

+0

प्राप्त करें अपनी स्क्रीन की कुर्की गोली मार दी http://www.imageurlhost.com/images/xo7tttfxq3s6fdhk60s.png – Nishu

+0

की जाँच करें: http://stackoverflow.com/questions/1079011/iphone-flipping-views-show-a-white-background –

+0

@Ganee आशा है कि आपने छवि अनुलग्नक देखा होगा। http://www.imageurlhost.com/images/xo7tttfxq3s6fdhk60s.png मैं UIPageViewController का उपयोग कर रहा हूं इसलिए एनीमेशन पहले से मौजूद है। मुझे अपनी छवि में उल्लेख के रूप में वापस रंग को संशोधित करने की आवश्यकता है। – Nishu

उत्तर

0
- (void) renderPageAtIndex:(NSUInteger)index inContext:(CGContextRef)ctx { 
UIImage *image = [images objectAtIndex:index]; 
CGRect imageRect = CGRectMake(0, 0, image.size.width, image.size.height); 
CGAffineTransform transform = aspectFit(imageRect, 
              CGContextGetClipBoundingBox(ctx)); 
CGContextConcatCTM(ctx, transform); 
CGContextDrawImage(ctx, imageRect, [image CGImage]); 
} 
+0

क्या aspectFit करना होगा (imageRect, CGContextGetClipBoundingBox (ctx)) ; विधि – Nishu

-2

pagecontrol चयन पेज दृश्यता के मामले में

color--

UIPageControl डिफ़ॉल्ट रूप से इस समर्थन नहीं करता। आपको अपना खुद का पेज नियंत्रण बनाना होगा और स्वयं को चित्र बनाना होगा।

+0

मैं UIPageViewController का उपयोग नहीं कर रहा हूं UIPageControl। UIPageViewController मैं iBook जैसे अनुप्रयोग विकसित कर रहा हूं, जबकि सफेद छाया के पीछे पृष्ठ कर्ल एनीमेशन डिफ़ॉल्ट रूप से वहां है। मुझे उस बीजी रंग को बदलने की जरूरत है। – Nishu

+0

नमूना छवि लिंक। पृष्ठ कर्ल करते समय सफेद बीजी वहां है मेरा आवेदन रात मोड का समर्थन कर रहा है इसलिए मुझे काला रंग बदलने की जरूरत है। http://www.techotopia.com/index.php/Image:Iphone_ios_5_uipageviewcontroller_app.jpg – Nishu

+0

http://www.imageurlhost.com/images/xo7tttfxq3s6fdhk60s.png – Nishu

7

मैं कुछ समय के लिए एक ही चीज़ करने की कोशिश कर रहा हूं और अंततः मुझे यह पता चला। बाहर निकलता है आप पृष्ठभूमि रंग को अन्य रंगों में सेट नहीं कर सकते हैं, लेकिन आप एक और दृश्य प्रदान कर सकते हैं कि UIPageViewController पीछे में जोड़ देगा। और यह रहस्य यहाँ है।

एप्पल के प्रलेखन से:

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController; 
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController; 

प्रत्येक विधि बुलाया जाएगा:

Spine location        Double sided    What to pass 
UIPageViewControllerSpineLocationMid    YES    Left and Right Page. 
SpineLocationMin or SpineLocationMax    YES    Front and Back of the page. 
SpineLocationMin or SpineLocationMax    NO    Front page only. 

तो, मूल रूप से, आप दोनों डेटा स्रोत तरीकों पर दो viewControllers हाँ करने के लिए दो तरफा गुण सेट और उपलब्ध कराने की आवश्यकता आपके द्वारा जोड़े गए प्रत्येक नए पृष्ठ के लिए दो बार। इसलिए, आपको उस दृश्य नियंत्रक को प्रदान करने की आवश्यकता है जिसे आप सामान्य रूप से वापस कर देंगे और एक नया दृश्य नियंत्रक जो पृष्ठ को एनीमेशन बदलने के दौरान वापस जोड़ा जाएगा।

यह आपके ऊपर है कि आपके "बैकव्यू कंट्रोलर" के पास क्या होगा। आप बस एक काला दृश्य देख सकते हैं या यदि आप चाहते हैं, तो आप सामने वाले पृष्ठ का एक स्क्रीनशॉट ले सकते हैं, और इससे एक प्रतिबिंबित छवि प्राप्त कर सकते हैं।

यह समझने में मुश्किल नहीं है कि यह कैसे काम करता है। एकमात्र समस्या यह है कि मैं यहां देख सकता हूं कि जब आप ब्लैक व्यू या ब्लैक बैकग्राउंड रखते हैं, तो पृष्ठ बदलते समय छाया सफेद हो जाती है। मुझे नहीं पता कि क्यों, लेकिन मैंने इसे कई अलग-अलग ऐप्स पर देखा है, इसलिए मुझे लगता है कि ऐप्पल यह सामान्य व्यवहार है। लेकिन यह वास्तव में अजीब लग रहा है।

संपादित करें: इसलिए यह समझना आसान है

मैं एक नमूना कोड जोड़ दिया है। https://github.com/mattabras/DoubleSidedPageViewController

Abras

+0

क्या आप कुछ कोड पोस्ट कर सकते हैं - मुझे सिद्धांत मिलता है, लेकिन यह नहीं देख सकता कि यह अभ्यास में कैसे काम करता है। मुझे केवल एक 'पृष्ठ' मिला है - एक डबल पक्षीय पृष्ठ ... – daidai

+0

@ एब्रस- क्या आपके लिए विस्तार करना संभव है या शायद एक उदाहरण पोस्ट करना संभव होगा? मैंने जो भी कहा है उसे लागू करने की कोशिश की है। धन्यवाद। – johnnelm9r

+1

आप यहां एक नमूना कोड प्राप्त कर सकते हैं। https://github.com/mattabras/DoubleSidedPageViewController – Abras