如何从 ViewController 更改自定义 UIView 的变量

How to change variable of custom UIView from ViewController

我创建了一个自定义 UIView (ProgressView),我在其中绘制了一个通过 StyleKit 从 PaintCode 导入的形状。

下面是代码。我在我的自定义 UIView 中声明了实例变量 属性,当我尝试从 ViewController 更改 属性 时,它不起作用。

ProgressView.h

#import <UIKit/UIKit.h>

@interface ProogressView : UIView

@property (nonatomic) float daysFraction;
@property (nonatomic) float pagesFraction;


@end

ProgressView.m

#import "ProgressView.h"
#import "StyleKitName.h"
#import "ViewController.h"

@implementation ProgressView
@synthesize daysFraction = _daysFraction;
@synthesize pagesFraction = _pagesFraction;


- (void)drawRect:(CGRect)rect {
    // Drawing code
    [StyleKitName drawCanvas1WithDaysFraction:self.daysFraction pageFraction:self.pagesFraction];
}


-(void)awakeFromNib {
    [super awakeFromNib];
    self.pagesFraction = 0;
    self.daysFraction = 0;
}

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

@end

*ViewController.m**

#import "ViewController.h"
#import "ButtonAnimation.h"
#import "ProgressView.h"
#import "StyleKitName.h"

@interface ViewController ()

@property (weak, nonatomic) IBOutlet ButtonAnimation *buttonView;
@property (weak, nonatomic) IBOutlet UIButton *actionButton;

@end


@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    ProgressView *new =[[ ProgressView alloc]init];
    new.daysFraction = 0.7f; // here I am setting value to variable in custom view ProgressView but not working.

}

- (IBAction)animateTheButton:(id)sender {
    self.buttonView.layer.backgroundColor = [UIColor clearColor].CGColor;
    [self.buttonView addErrorAnimation];

}


@end

您需要将此视图添加到 UIViewController 的视图中:

[self.view addSubview:progressView];

后面还要设置边框。例如

[progressView setFrame:self.view.bounds];

您可以在 viewDid/WillLayoutSubviews 方法中执行此操作以在旋转时更改它/window 调整大小事件。

顺便说一句,不要将您的观点命名为 new,这太可怕了。这样的名字连是什么变量都看不出来