【问题标题】:creating or changing UIimage from a DIFFERENT Class method从不同的类方法创建或更改 UIimage
【发布时间】:2015-03-18 08:07:44
【问题描述】:

我正在尝试使用类方法从另一个类创建或更改 UIimage。但是,当我尝试解决类控制器中的视图时,我不能。例如[self.view addsubview:...] 这可能吗?最好的方法是什么?提前致谢。

【问题讨论】:

    标签: ios objective-c uiimage


    【解决方案1】:

    您在第二个类中导入 UIImage 的头文件(或者更好地使用 UIIMageView),然后将其定义为对象。添加@property 和@synthesize 是第二个.m。引用应该在 addSubview 知道导入的对象之后起作用。

    【讨论】:

    • 好的,试试看。
    【解决方案2】:

    假设这是你的模型类头文件,你定义了你的 uiimageview:

    @property (weak,nonatomic) IBOutlet UIImageView *modelImageView;
    

    这是您的视图控制器及其实现文件,您可以像这样使用:

    #import "YourModel.h"
    @interface yourViewController() {
    YourModel *yourModel;
    }
    end
    @implementation yourViewController
    - (void) viewDidLoad {
    [super viewDidLoad];
    [self.view addSubView:yourModel.modelImageView];
    }@end
    

    这是一种直接的方法,可以让事情变得更好;只需定义一些方法来控制您的 UIImageViewlike changeColor setBackgroundColor 等,然后从您的 viewController 访问它们,例如:

    [yourModel setColor:[UIColor greenColor] placeHolderImage:[UIImage ...]];
    

    所以我在这里要解释的是,您可以在任何地方访问您的 UIImageView,并且您将只有一个模型可以从每个 viewController 访问。

    【讨论】:

    • 感谢您的回复,但我想我没有解释清楚我有两个类,其中一个包含 uiimageview、viewcontroller.m 但我想从 secondcontroller.m 设置它
    • 好吧,我现在明白了,但从一个视图到另一个视图通常是个坏主意。我建议你研究 MVC 架构,如果你解释你想用那个 imageview 做什么,我可以编辑我的答案关于你的确切问题。 :)
    • 我忘了说抱歉。在你的情况下,MVVM 可能是比 MVC 更好的选择。
    • 好的,我想我现在有了,但我正在做的是从另一个类调用类方法并使用共享实例调用私有方法。这样做不好还是可以?在 .m= 静态解析器 *sharedInstance = nil; sharedInstance = [[super allocWithZone:NULL]init]; [sharedInstance 你好] ;调用 -(void)hello;
    • 看起来没问题,但请确保您没有分配两次,但如果使用 dispatch_once() 可能会更好。如需更多信息,您可以查看:cocoasamurai.blogspot.it/2011/04/…
    猜你喜欢
    • 2018-08-16
    • 1970-01-01
    • 2017-02-17
    • 2020-12-09
    • 1970-01-01
    • 2019-10-25
    • 2017-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多