ios ड्राइंग और uiimageview ऊपर छवि हिल-स्विफ्ट




swift (2)

मैं स्विफ्ट में सरल छवि हेरफेर को लागू करने की कोशिश कर रहा हूं, मैं UIImageView की छवि से ऊपर खींचना चाहता हूं।

तो इंटरफ़ेस निम्न चित्र में होगा जैसा कि:

जब इमोजी नकारात्मक पक्ष पर क्लिक करते हैं, तो मैं इसे खींचकर छवि को देखने के लिए छोड़ना चाहता हूं, या केवल क्लिक करके इसे यूआईजेटेज दृश्य पर ले जाएगा,

तो यह uiimageview के अंदर चारों ओर स्थानांतरित किया जा सकता है और पूरी छवि गैलरी को बचा सकता है

मैं इसके बारे में गूगल पर उपयोगी स्रोत नहीं मिल सकता है

तो इस के साथ कहाँ शुरू करने के लिए?


2 छवियों को संयोजित करने के लिए निम्नलिखित कोड का उपयोग करें, मैं खींचें और ड्रॉप चीज़ के लिए कोड नहीं जोड़ रहा हूं

UIImage *mainImage = firstImage;
UIImage *smallImage = secondImage;
CGPoint renderingPoint = CGPointMake(50,50);
UIImage *outputImage = nil;

if (smallImage.size.width > mainImage.size.width || smallImage.size.height > mainImage.size.height)
{
    return smallImage;
}

UIGraphicsBeginImageContext(firstImage.size);

[firstImage drawAtPoint:CGPointMake(0,0)];
[secondImage drawAtPoint:renderingPoint];
outputImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

आउटपुट इमेज यहां 2 संयुक्त छवियों का उत्पादन है। रेंडरिंगपॉइंट वह बिंदु है, जिस पर आप अन्य छवि खींचना शुरू करना चाहते हैं।

बस स्पर्श तरीकों को जोड़ें और उस बिंदु को प्राप्त करें जिसमें टच समाप्त होता है, उस बिंदु को केंद्र बिंदु के रूप में रखते हुए और छोटी आयम की चौड़ाई का उपयोग करके, आप इसके रेंडरिंग पॉइंट की गणना कर सकते हैं।

साथ ही यह भी ध्यान में रखें कि यहां रेंडरिंग पिक्चर छवि के मूल आकार के संदर्भ में है, छवि के आकार का आकार नहीं है, इसलिए छवि विज़न के ऊपर या नीचे स्केल करने के लिए गणना करें।


यदि इमोजी एक UIImageView , तो आप touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) को लागू कर सकते touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) निम्नलिखित है जहां mainImageView दृश्य है जिसमें आप इमोजी जोड़ना चाहते हैं

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
    let touch = event?.allTouches()?.first
    let touchLocation = touch?.locationInView(self.view)

    if(CGRectContainsPoint(emojiImageView?.frame, touchLocation)) {
        //your emoji imageView has been selected. 
        addImageviewToMainImageView(emojiImageView)
    } 
}

func addImageviewToMainImageview(imageView: UIImageView!) {
    imageView.removeFromSuperView()
    let origin = CGPoint(mainImageView.center.x , mainImageView.center.y)
    let frame = CGRect(origin.x, origin.y, imageView.frame.size.width, imageView.frame.size.height)
    imageView.frame = frame
    mainImageView.addSubview(imageView)
}

यदि आप emojiImageView को emojiImageView चारों ओर ले जाना चाहते हैं, तो आपको mainImageView को mainImageView के लिए mainImageView करना चाहिए touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) और touchesMoved(touches: Set<UITouch>, withEvent event: UIEvent?) में एक समान फैशन

1) स्पर्श के साथ स्पर्श का पता लगाएं, निर्धारित करें कि मुख्य mainImageView में से एक में से एक को छुआ गया है या नहीं। इस सबव्यू के संदर्भ सेट करें

2) यदि एक touchesMoved को छुआ गया है, तो touchesMoved का नया स्थान निर्धारित करने के लिए उस संदर्भ का उपयोग किया जाएगा:

let touch = event?.allTouches()?.first
let touchLocation = touch?.locationInView(self)
selectedSubview.center = touchLocation




uiimage