Bir var IBOutlet
bir için UIImageView
, ama ben baktığımda UIImageView
doc, ben program aracılığıyla değiştirme hakkında herhangi bir ipucu göremiyorum. Bundan bir UIImage
nesne getirmem gerekiyor UIImageView
mu?
Bir var IBOutlet
bir için UIImageView
, ama ben baktığımda UIImageView
doc, ben program aracılığıyla değiştirme hakkında herhangi bir ipucu göremiyorum. Bundan bir UIImage
nesne getirmem gerekiyor UIImageView
mu?
Yanıtlar:
Zaten bir UIImageView için IBOutlet'iniz varsa, yapmanız gereken tek şey bir görüntü almak ve alıcıda setImage'ı (UIImageView) çağırmaktır. Bir görüntüyü yakalamanın iki örneği aşağıdadır. Biri Web'den, diğeri ise Xcode'daki Kaynaklar klasörünüze eklersiniz.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
veya
UIImage *image = [UIImage imageNamed: @"cell.png"];
Bir Görüntünüz olduğunda UIImageView'ı ayarlayabilirsiniz:
[imageView setImage:image];
Yukarıdaki satır imageView öğesinin IBOutlet'iniz olduğunu varsayar.
Bu kadar! Süslü olmak istiyorsanız, görüntüyü bir UIView'e ekleyebilir ve sonra geçişler ekleyebilirsiniz.
PS Bellek yönetimi dahil değildir.
Görünüm sahneye ekleninceye kadar NIB dosyasının tüm IBOutlet'leri bağlamadığını unutmayın. Bir şeyleri manuel olarak bağlıyorsanız (işler ayrı NIB'lerde yapıyorsanız, bunu aklınızda bulundurmanız önemlidir).
Test görünüm denetleyicim bir uç tarafından kablolu bir "imageView" varsa, bu muhtemelen işe yaramaz:
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
[self.view addSubview:testCardViewController.view];
Ancak bu:
[self.view addSubview:testCardViewController.view];
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
imageView.image = [UIImage imageNamed:@"myImage.png"];
Sorununu çözmek için bu işi yapan kişilerin amacı için başlık dosyanızdaki özelliği doğru bir şekilde bildirmeyi ve uygulama dosyanızdaki UIImageView'ı sentezlemeyi unutmayın ... Görüntüyü programlı olarak alıcı ve ayarlayıcı yöntemleri.
#import <UIKit/UIKit.h>
@interface YOURCONTROLLERNAME : UIViewController {
IBOutlet UIImageView *imageToDisplay;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;
@end
ve sonra .m'nizde:
@implementation YOURCONTROLLERNAME
@synthesize imageToDisplay;
//etc, rest of code goes here
Oradan görüntünüzü ayarlamak için aşağıdakine benzer bir şey kullanmalısınız.
[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
Örnek Swift :
import UIKit
class ViewController: UIViewController {
@IBOutlet var myUIImageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func myAction(sender: UIButton) {
let newImg: UIImage? = UIImage(named: "profile-picture-name")
self.myUIImageView.image = newImg
}
@IBAction func myAction2(sender: UIButton) {
self.myUIImageView.image = nil
self.myUIImageView.image = UIImage(data: NSData(contentsOfURL: NSURL(string: "http://url/image.png")!)!)
}
}
Ürdün'ün tavsiyelerine uyarak (gerçekten çalışması gerekir), UIImageView'ı görünür olacak şekilde ayarlamaya çalışın:
[imageView setHidden: NO];
ve ayrıca - ana UIView'e eklemeyi unutmayın:
[mainView addSubview: imageView];
öne getirmek için:
[mainView bringSubviewToFront: imageView];
Umarım tüm bu adımları birleştirmek gizemi çözmenize yardımcı olacaktır.
Benim sorunum başka bir iş parçacığında görüntüyü değiştirmeye çalıştım oldu. Bunu beğendim:
- (void)changeImage {
backgroundImage.image = [UIImage imageNamed:@"img.png"];
}
İle ara:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
dispatch_async(dispatch_get_main_queue(), ^{backgroundImage.image = [UIImage imageNamed:@"img.png"];})
Görüntüyü UIImageView
programlı olarak ayarlamak istiyorsanız , ana görünüme SubViewUIImageView
olarak eklemeyi unutmayın .
Ve ayrıca ImageView Frame ayarlamayı unutma .
işte kod
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"myImage.png"];
[self.view addSubview:myImage];
sizeToFit()
UIScrollView içeriğini ayarlamak için UIImageView boyutunu kullanırsanız, görüntüyü değiştirdikten sonra aramayı unutmayın.
let image = UIImage(named: "testImage")
imageView.image = image
imageView.sizeToFit()
scrollView.contentSize = imageView.bounds.size
myUIImageview.image = UIImage (named:"myImage.png")
Bu sorunun zaten çok fazla cevabı vardı. Ne yazık ki hiçbiri benim için işe yaramadı. Tamamlayıcılar uğruna bana yardımcı olanı ekliyorum:
Aynı ada sahip birden fazla resmim vardı - bu yüzden onları alt klasörlerde sipariş ettim. Ve göstermek istediğim görüntü dosyasının tam yolunu buldum. Tam bir yol ile imageNamed:
(yukarıdaki tüm çözümlerde kullanıldığı gibi) işe yaramadı ve yanlış yöntemdi.
Bunun yerine şimdi böyle kullanın imageWithContentsOfFile:
:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
Bilmiyorum, bu kadar okuyan var mı?
Eğer öyleyse ve bu size yardımcı oldu: lütfen oy verin. ;-)
ImageView'ınızdaki resmi ayarlamak için aşağıdaki kod satırını kullanın,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];