2009-06-14 26 views
12

मैं यहाँ इसी तरह के सवाल पूछ ... मैं विभिन्न तरीकों कि सीमा और फ्रेम आदि निम्नलिखित सहित पोस्ट किए गए थे की कोशिश की है पर विभिन्न पदों पढ़ा है:बदलने UIImageView चौड़ाई और ऊंचाई

myImage.frame = CGRectMake(0.0f, 0.0f,50.0f, 50.0f); 

और:

myImage.bounds = CGRectMake(0.0f, 0.0f,50.0f, 120.0f); 

इनमें से कोई भी काम नहीं।

हालांकि, मुझे लगता है यह दिलचस्प निम्नलिखित कोड है कि मेरे चारों ओर छवि के लिए कदम है, लेकिन चौड़ाई परिवर्तन नहीं करता है:

CGRect frameRect = myImage.frame; 
frameRect.size.width = 50.0f; 
frameRect.origin.x += 10.5f; 
myImage.frame = frameRect; 

तो क्यों इन में से किसी की चौड़ाई/ऊंचाई में परिवर्तन नहीं करते मेरी imageView?

मुझे यहां एक और पोस्ट मिली है जो मूल रूप से बताती है कि मुझे अपनी छवि का आकार बदलने के लिए कोड की एक छोटी सी पुस्तक सही है ... क्या यह सच है?

इस तरह इस एक के रूप में: UIImage: Resize, then Crop

निश्चित रूप से यह है कि तुलना में आसान है ??

+0

मैंने इसे समझ लिया, मेरा सवाल सबसे अच्छा तरीका नहीं पूछा गया था, मुझे यह कहना चाहिए था कि छवि को स्केल करना ठीक था। मैं बस "भरने के लिए स्केल" होने के लिए मोड का चयन करने में सक्षम था और मेरे ऊपर जो कोड है, वह ठीक है। सहायता के लिए धन्यवाद। –

उत्तर

-1

आपको एक पूरी किताब लिखने की ज़रूरत नहीं है, आप उस कोड को कॉपी कर सकते हैं।

मेरा मानना ​​है कि UIImageView हमेशा 1.0 स्केल पर 0,0 पर चित्र खींचता है। यदि आप UIImageView का उपयोग करना जारी रखना चाहते हैं तो आपको छवि का आकार बदलना होगा।

0

अपने छवि दृश्य का आकार बदलने या बदलने के लिए myImageView.frame = myNewPosAndSize; का उपयोग करें (जैसा कि किसी भी अन्य दृश्य के साथ)। यह आपको भ्रमित कर सकता है कि छवि दृश्य अपनी छवि को अपने मूल आकार के साथ खींचता है, संभवतः अपने स्वयं के आयामों से अधिक है। इस उपयोग को अक्षम करने के लिए myImageView.clipsToBounds = NO;

11

सबसे पहले, आप UIImage के फ्रेम या सीमा निर्धारित नहीं कर सकते हैं - जो केवल UIImageView पर काम करेगा।

मुझे पता चला है कि UIImageView के फ्रेम को बदलने से छवि नए आकार में स्केल हो गई है। कभी-कभी, यह अवांछनीय है - और आप छवि को फसल करने के बजाय चाहते हैं।

मैं अगर यह आपके लिए क्या पूछ रहे है, लेकिन यहाँ एक UIImageView में विशिष्ट आकार के लिए एक चित्र काटने के लिए कुछ कोड है नहीं बता सकता:

UIImage *myImage = [UIImage imageNamed:@"photo.png"]; 

CGRect cropRect = CGRectMake(0.0, 0.0, 320.0, 44.0)); 
CGImageRef croppedImage = CGImageCreateWithImageInRect([myImage CGImage], cropRect); 

UIImageView *myImageView = [[UIImageView alloc] initWithFrame:cropRect]; 
[myImageView setImage:[UIImage imageWithCGImage:croppedImage]]; 

CGImageRelease(croppedImage); 
3

मैं क्या प्रश्न के मिल से, कंटेनर UIView के आकार को बदलते समय ओपी UIImageView के आकार को बदलना चाहता था। नीचे दिए गए कोड यह करना होगा ...

UIView * foo = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 25, 25)] autorelease]; 
foo.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 
UIImageView * bar = [[UIImageView alloc] initWithImage: 
        [UIImage imageNamed:@"test.png"]]; 
bar.autoresizingMask = foo.autoresizingMask; 
[foo addSubview:bar]; 
[self.view addSubview:foo]; 

कुंजी यहाँ हैं foo.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight और बार.autoresizingMask = foo.autoresizingMask; लाइनें। इनमें से किसी को भूल जाओ, और पूरा जिगमारोल काम करना बंद कर देगा।

+5

जब कोई फू और बार –

1

एक UIScrollView का उपयोग करने का प्रयास करें।

CGRect rect = [scrollView frame]; 

    rect.origin.x = 50.0f; 
    rect.origin.y = 0.0f; 
    rect.size.width = 320.0f; 
    rect.size.height = 150.0f; 

    [scrollView setFrame:rect]; 
24

निम्नलिखित यह आकार बदलने और इसे ध्यान में रखते हुए बिना UIImaveView के आकार बदल जाएगा, अंतर्निहित छवि कतरन: UIScrollView इंटरफ़ेस बिल्डर में आप तो स्थिति और छवि का आकार नियंत्रित कर सकते हैं के रूप में इस के लिए UIImageView जोड़े दृश्य के निचले बाईं ओर गठबंधन:

imageView.frame = CGRectMake(
      imageView.frame.origin.x, 
      imageView.frame.origin.y, newWidth, newHeight); 

imageView.contentMode = UIViewContentModeBottomLeft; // This determines position of image 
imageView.clipsToBounds = YES; 
+11

का उपयोग करता है तो मुझे इससे नफरत है यह काम नहीं करता है – Guy

2

ठीक है, अगर आपके UIImage तुम नोटिस कर सकते हैं कि एक UIImage के किसी भी पैरामीटर को बदलने के लिए के बाद इसे बनाने के असंभव है के बारे में दस्तावेज़ पढ़ें, समाधान मैं के लिए उपयोग उच्च गुणवत्ता को क्रियान्वित किया है स्लाइडर छवि के रूप में स्लाइडर नियंत्रण के कुछ पैरामीटर (उदाहरण के लिए) के लिए छवियां, अगली एक है:

UIImage *tumbImage= [UIImage imageNamed:@"screw.png"]; 
UIImage *screw = [UIImage imageWithData:UIImagePNGRepresentation(tumbImage) scale:2]; 

इसके साथ, मैं 50% तक अपने ऐप्स में 100x100 पीएक्स छवि का उपयोग कर सकता हूं।

दयालु संबंध।

1

यदि आपने कोशिश की है कि वे विधियां काम नहीं कर सकती हैं, तो ऐसा करने का एकमात्र तरीका UIImageView में चौड़ाई और ऊंचाई की बाधा को जोड़ना है।

// Create the constraint in code 
NSLayoutConstraint *constraint0 = [NSLayoutConstraint constraintWithItem: myImage attribute:NSLayoutAttributeWidth relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeWidth multiplier:1.0f constant: yourNewsWidth]; 


NSLayoutConstraint *constraint1 = [NSLayoutConstraint constraintWithItem: myImage attribute:NSLayoutAttributeHeight relatedBy:NSLayoutRelationEqual toItem:nil attribute:NSLayoutAttributeHeight multiplier:1.0f constant: yourNewsHeight]; 

[myImage addConstraint:constraint0]; 
[myImage addConstraint:constraint1]; 
संबंधित मुद्दे