ios - 使用 UIImageView 参数添加 UIView 来查看

标签 ios uiview uiimageview addsubview

我不明白这有什么问题。我正在尝试向当前 View 添加 subview 。我 allocinitWithNibName 我的 SecondViewController 并设置其 myImageView 参数,该参数是一个 UIImageView 。问题是,当添加 subView 时,未设置 myImageView

这是代码:

- (void)viewDidLoad
{
   [super viewDidLoad];
SecondViewController *secondView = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];

secondView.myImageView.image = [UIImage imageNamed:@"image1.png"];

[self.view addSubview secondView.view];
}

如果我通过 Interface Builder 将图像设置为 myImageView ,它会正确显示在 addSubview 上,但如果我按照上述方式设置属性,它将不起作用... UIImageView socket 已正确连接到 IB 上。

这是SecondViewController:

@interface SecondViewController : UIViewController
{

}

@property(nonatomic,strong)IBOutlet UIImageView *myImageView;


@end

最佳答案

我相信您的问题是,当您调用 secondView.myImageView.image = [UIImage imageNamed:@"image1.png"]; 时, myImageView 导出尚未设置。 initWithNibName:bundle: 的文档说:“您指定的 nib 文件不会立即加载。它会在第一次访问 View Controller 的 View 时加载。”所以你需要这样的代码:

- (void)viewDidLoad
{
   [super viewDidLoad];
SecondViewController *secondView = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];

// Force the nib to load, which subsequently sets the myImageView outlet
[secondView view];

secondView.myImageView.image = [UIImage imageNamed:@"image1.png"];

[self.view addSubview secondView.view];
}

但是,我不推荐这种方法。您确实应该在 SecondViewController 的 -viewDidLoad 方法中设置 myImageView 导出的图像。这就是它所属的地方。

// SecondViewController.m

- (void)viewDidLoad
{
     [super viewDidLoad];

     self.myImageView.image = [UIImage imageNamed:@"image1.png"];
}

然后在另一个 View Controller 的 -viewDidLoad 方法中,只需像以前一样将 SecondViewController 的 View 添加为 subview :

- (void)viewDidLoad
{
     [super viewDidLoad];

     SecondViewController *secondVC = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];

     [self.view addSubview:secondVC.view];
}

关于ios - 使用 UIImageView 参数添加 UIView 来查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11765184/

相关文章:

ios - 让 UITextField 分析在 Xcode Swift 中输入的单个字符而不是整个字符?

ios - 用于自动续订订阅通知的应用内购买

ios - UIView 透明度会影响应用程序的性能吗?

iphone - 为 UITableView 设置三边边框 - IOS

ios - drawInRect 不读取/保留 UIImageView 转换

ios - 更改 Storyboard删除所有不明确的 ="YES"属性

ios - Swift PNG 图像以不正确的方向保存

ios - 在非父 View 的 UIView 中获取 View 的框架

ios - 如何将渐变颜色设置为UIImageView边框

iphone - 如何向 UIImage 或 UIImageView 或 UIView 添加外部发光