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



我创建了一个自定义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方法中执行此操作,以在旋转/窗口调整事件时更改它。

顺便说一句,不要把你的观点命名为new,这太可怕了。这样的名称甚至不能说明它是什么样的变量。

相关内容

  • 没有找到相关文章

最新更新