0
我創建了一個自定義的UIView(ProgressView),我繪製從PaintCode通過StyleKit導入的形狀。如何從ViewController更改自定義UIView的變量
以下是代碼。我已經在我的自定義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
*查看Controller.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
您已經在viewDidLoad中創建了一個新的進度視圖,但未將其添加到您的視圖層次結構中,因此它將不可見。並且引用存儲在一個局部變量中,因此只要需要退出就會被釋放。如果您通過故事板屏幕在屏幕上顯示另一個實例,那麼您應該設置一個IBOutlet屬性,以便您可以更新*該實例 – Paulw11
我不是100%確定,但我不認爲您可以使用「new」作爲變量名稱。在Objective-C中可能有一個關鍵字,如果沒有的話,我不認爲它是一個好的變量名稱:) – Yan
沒有理由不能設置IBAction方法的值。也許顯示代碼。 – Paulw11