Mam IBOutlet
do UIImageView
, ale gdy patrzę na dokument UIImageView
, nie widzę żadnej wskazówki, jak programowo go zmienić. Czy muszę pobrać obiekt UIImage
z tego UIImageView
?Jak programowo zmienić obraz wyświetlany w UIImageView?
Odpowiedz
Jeśli masz już IBOutlet do UIImageView, to wystarczy pobrać obraz i wywołać setImage na odbiorniku (UIImageView). Dwa przykłady chwytania obrazu znajdują się poniżej. Jeden z sieci i taki, który dodajesz do swojego folderu zasobów w Xcode.
UIImage *image = [[UIImage alloc] initWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://farm4.static.flickr.com/3092/2915896504_a88b69c9de.jpg"]]];
lub
UIImage *image = [UIImage imageNamed: @"cell.png"];
Po uzyskaniu obrazu można ustawić UIImageView:
[imageView setImage:image];
Linia powyżej zakłada ImageView to IBOutlet.
To wszystko! Jeśli chcesz mieć ochotę, możesz dodać obraz do UIView, a następnie dodać przejścia.
P.S. Zarządzanie pamięcią nie jest wliczone w cenę.
Za radą Jordana (który powinien pracować właściwie), spróbuj ustawić UIImageView być widoczne:
[imageView setHidden: NO];
a także - nie zapomnij dołączyć go do głównego UIView:
[mainView addSubview: imageView];
i doprowadzić do przodu:
[mainView bringSubviewToFront: imageView];
Nadzieja łącząc wszystkie te czynności pomogą Ci rozp e tajemnica.
Ten pracował dla mnie
[ImageViewName setImage:[UIImage imageNamed: @"ImageName.png"]];
Upewnij się, że ImageView deklaruje odpowiednio w pliku .h i jest związany z elementem IB.
Dla osób, które mogą używać tego rozwiązania w celu rozwiązania problemu, należy pamiętać o prawidłowym zadeklarowaniu właściwości w pliku nagłówkowym i zsyntetyzowaniu UIImageView w pliku implementacyjnym ... Trudno będzie ustawić obraz programowo bez metod getter i setter.
#import <UIKit/UIKit.h>
@interface YOURCONTROLLERNAME : UIViewController {
IBOutlet UIImageView *imageToDisplay;
}
@property (nonatomic, retain) IBOutlet UIImageView *imageToDisplay;
@end
a następnie w .m:
@implementation YOURCONTROLLERNAME
@synthesize imageToDisplay;
//etc, rest of code goes here
Stamtąd powinno być w porządku użyciu coś jak poniżej, aby ustawić obraz.
[YOURCONTROLLER.imageToDisplay setImage:[UIImage imageNamed:value]];
Dzięki! Będąc nowicjuszem w Xcode i na iPhone'ach brakowało mi YOURCONTROLLER przed imageToDisplay. – Opy
Należy zauważyć, że plik NIB nie łączy wszystkich IBOletów, dopóki widok nie zostanie dodany do sceny. Jeśli robisz to ręcznie (co możesz robić, jeśli wszystko jest w oddzielnych NIB-ach), ważne jest, aby o tym pamiętać.
Więc jeśli mój widok Test kontroler ma "ImageView" wired przez stalówki, to prawdopodobnie nie będzie działać:
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
[self.view addSubview:testCardViewController.view];
Ale to będzie:
[self.view addSubview:testCardViewController.view];
testCardViewController.imageView.image = [UIImage imageNamed:@"EmptyCard.png"];
Moim problemem było to, że próbował zmienić obraz w innym wątku. Zrobiłem tak:
- (void)changeImage {
backgroundImage.image = [UIImage imageNamed:@"img.png"];
}
Połącz z:
[self performSelectorOnMainThread : @selector(changeImage) withObject:nil waitUntilDone:NO];
Tak, to trochę mnie ... znowu ... Może również użyć 'dispatch_async (dispatch_get_main_queue(),^{backgroundImage.image = [UIImage imageNamed: @" img.png "];})' – Dex
UIColor * background = [[UIColor alloc] initWithPatternImage:
[UIImage imageNamed:@"anImage.png"]];
self.view.backgroundColor = background;
[background release];
Czy to samo dotyczy obecny obraz według tła UIView lub właściwości obrazu UIImageView? – voromax
Jeśli chcesz ustawić obraz do UIImageView
programowo następnie nie zapomnij dodać UIImageView
jak podrzędny do głównego widoku.
A także nie zapomniałem ustawić ImageView Frame.
Oto kod
UIImageView *myImage = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 460)];
myImage.image = [UIImage imageNamed:@"myImage.png"];
[self.view addSubview:myImage];
imageView.image = [UIImage imageNamed:@"myImage.png"];
To pytanie już wiele odpowiedzi. Niestety nikt nie pracował dla mnie. W celu uzupełnienia dodam, co mi pomogło:
Miałem wiele zdjęć o tej samej nazwie - więc zamówiłem je w podfolderach. I miałem pełną ścieżkę do pliku obrazu, który chciałem pokazać. Pełna ścieżka imageNamed:
(używana we wszystkich powyższych rozwiązaniach) nie działała i była niewłaściwą metodą.
Zamiast Teraz używam imageWithContentsOfFile:
tak:
self.myUIImage.image = [UIImage imageWithContentsOfFile:_currentWord.imageFileName];
Nie wiem, czy ktoś czyta się tak daleko?
Jeśli tak, to pomogło: przeprowadź głosowanie. ;-)
przykład w 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")!)!)
}
}
myUIImageview.image = UIImage (named:"myImage.png")
Oznaczone jako bardzo niskiej jakości. Popraw to. – Drew
Możesz to zrobić, rozwijając go. –
Nie zapomnij zadzwonić sizeToFit()
po zmianie wizerunku, jeśli następnie za pomocą wielkości od UIImageView ustawić UIScrollView contentSize i/lub obliczeniowe zoom
let image = UIImage(named: "testImage")
imageView.image = image
imageView.sizeToFit()
scrollView.contentSize = imageView.bounds.size
Aby ustawić obraz na korzystania ImageView poniżej linii kodu,
self.imgObj.image=[UIImage imageNamed:@"yourImage.png"];
skopiuj obraz do projektu, a następnie użyj powyższego kodu –
- 1. Programowo ustawić obraz do UIImageView z Xcode 6.1/Swift
- 2. Jak zmienić obraz przycisku Wyślij w JSQMessagesController
- 3. Programowo ustawiony obraz i tekst w UIButtonie
- 4. Obraz tła CSS nie wyświetlany
- 5. obraz wyświetlany z bajtu Array
- 6. Jak zmienić obraz na slajdzie w lateksie?
- 7. zdarzenia kliknięcia na UIImageView programowo w iOS
- 8. Jak zmienić obraz PictureBox?
- 9. Jak zmienić obraz spinnera
- 10. Jak poprawnie zastąpić obraz w UIImageView w UIScrollView na iOS
- 11. Obraz tła nie wyświetlany w przeglądarce Chrome
- 12. Obraz odwrócony wyświetlany przez imshow w matplotlib
- 13. AVPlayerLayer pobierz obraz do bufora UIImageView
- 14. Obraz nie pasuje do ramki UIImageView
- 15. UIImageView aspekt dopasowania i centrum
- 16. Obraz jest wyświetlany na symulatorze, ale nie na prawdziwym iPhone
- 17. Jak zmienić rozmiar UIImageView, aby dopasować obraz bazowy bez przenoszenia go?
- 18. Jak zmienić card_view: cardCornerRadius programowo
- 19. CABasicAnimation nie działa z UIImageView
- 20. Jak programowo zmienić wygaszacz ekranu?
- 21. Jak programowo zmienić czcionkę etykiety?
- 22. Sprężyna - obraz wyświetlany na pliku JSP
- 23. Jak zmienić pasek postępu obraz w android
- 24. Wyświetlany obraz z szklanego aparatu jest zniekształcony.
- 25. Jak programowo zmienić głośność w Ubuntu
- 26. Jak programowo zmienić tytuł w oknie wpf?
- 27. Obracanie obrazu w UIImageView
- 28. Jak programowo dodać UIImage do UIImageView następnie dodać UIImageView do innego UIView?
- 29. Zapisz obraz w UIImageView na iPadzie Zdjęcia Biblioteka
- 30. Jak przetestować obraz wyświetlany za pomocą programu rspec?
dziękuję, ale to nie działa :( usunąłem obraz w konstruktorze interfejsów, aby UIImageView był pusty. następnie zaimplementowałem to w metodzie viewDidLoad. Ale nic się nie dzieje. Nazwa obrazu jest poprawna w 100%. Przypisałem mu również setImage do gniazdka. Coś jeszcze mogę spróbować? – Thanks
Prawdopodobnie nie podłączyłeś IBOutlet do odwołania ViewController w IB. Sprawdź, czy obraz znajduje się w folderze Zasoby. – Jordan
Nie jestem pewien, czy zasady necro/wpływ na SO, ale wiem, że to pomogło mi rozwiązać mój problem. Używam iOS v5.1, xcode 4.3.2 – Jake