ios - 如何在 ios 中分解出 3 个自定义 uiView?

原文 标签 ios swift uiview

关闭。这个问题需要更多 focused .它目前不接受答案。












想改进这个问题?更新问题,使其仅关注一个问题 editing this post .

6年前关闭。




Improve this question




我有以下用户界面

enter image description here

我想重构重复 3 次的自定义 View 。

这意味着当我更改自定义 View 的颜色时,所有 3 个实例都将相应更改为具有相同的颜色。在 android 中,我会通过将自定义 View xml 提及到更大的布局 xml 中来添加它

如何在 iOS 中完成?
如何仅以编程方式注入(inject)不同的(图像和文本)?

最佳答案

在您的情况下,创建 UIView 的子类与此类似:

//.h file
#import <UIKit/UIKit.h>

@interface ImageHolderView : UIView

@property (nonatomic, strong) IBOutlet UIImageView *imgView;
@end

//.m file
#import "ImageHolderView.h"

@implementation ImageHolderView

- (id)initWithCoder:(NSCoder *)aDecoder {
    if ((self = [super initWithCoder:aDecoder])) {

    }
    return self;
}

-(void)layoutSubviews{

    [super layoutSubviews];

    [self setBackgroundColor:[UIColor greenColor]];

}

@end

您将每个人的文件所有者命名为 UIView作为子类的名称UIVIew .

enter image description here

在这里,您将所有 UIView 的背景颜色设置为相同。你的子类。

并在 UIView 中设置单个图像,您在 UIViewController 中执行此操作:
#import "ViewController.h"
#import "ImageHolderView.h"

@interface ViewController ()
@property (nonatomic, strong) IBOutlet ImageHolderView *imgHOlder1;
@property (nonatomic, strong) IBOutlet ImageHolderView *imgHOlder2;
@property (nonatomic, strong)IBOutlet ImageHolderView *imgHOlder3;

@end

@implementation ViewController

-(void)viewWillAppear:(BOOL)animated{

    [super viewWillAppear:animated];

    _imgHOlder1.imgView.image=[UIImage imageNamed:@"black.png"];
    _imgHOlder2.imgView.image=[UIImage imageNamed:@"code.png"];
    _imgHOlder3.imgView.image=[UIImage imageNamed:@"white.png"];
}

备注 : 背景颜色、边框颜色等常用属性可以在UIView 中设置。子类,您希望每个 UIView 不同的剩余属性应该在你的子类中声明为属性 UIView .h 文件,并将它们设置在您的 UIViewController 中.

关于ios - 如何在 ios 中分解出 3 个自定义 uiView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34679696/

相关文章:

ios - 如果设置了 UIImageView 图像,有一种方法可以快速通知?

iphone - UIActionSheet 按钮显示 View

ios - 带有POP框架的UIView动画在同一操作中会增长和收缩

ios - Sticker Pack中缺少App图标,但是我设置了所有图标

ios - 是否可以仅基于区域来本地化iOS应用程序名称?

ios - 如何从不同的 ViewController 访问 Realm 数据库?

ios - 我希望能够按标签指定的顺序编辑文本字段。很多研究无济于事。我有点新手

ios - 如果一个 UIView 没有 super View ,它的 frame 属性会变成什么?

ios - 更新到Xcode 5.1.1导致iOS应用奇怪崩溃

ios - 创建内存构建的 AFHTTPRequestOperations 队列