如何在viewDidLoad方法中增加UIView的大小?

时间:2014-09-01 05:23:52

标签: ios objective-c iphone uiview

我是ios应用程序的新手。我的主视图有3个视图。这些视图代表一个图表。任何时候用户打开主视图(我的意思是每次调用viewDidLoad)我需要测量一些数字并根据它们绘制这些图形。我只需要改变图形的宽度!但是我尝试手动将大小添加到其中一个图形但是根本没有改变!任何建议将不胜感激。

如您所见,我在这里添加了100

self.timerGraph.frame.size.width+100


self.timerGraph.frame = CGRectMake(self.timerGraph.frame.origin.x,self.timerGraph.frame.origin.y,self.timerGraph.frame.size.width+100,self.timerGraph.frame.size.height);

但它没有受到影响!

编辑:我用过这个,但Ben正在打印,但宽度没有改变!!

- (void)viewWillAppear:(BOOL)try{

    NSLog(@"Ben");
    self.bestGraph.frame = CGRectMake(self.bestGraph.frame.origin.x,self.timerGraph.frame.origin.y,self.timerGraph.frame.size.width+130,self.timerGraph.frame.size.height);

}

编辑:我删除了一些实现部分以缩短它。

- (void)viewDidLoad
{


    NSNumber *min = [NSNumber numberWithInt:0];
    NSNumber *max = [NSNumber numberWithInt:0];
    NSNumber *avg = [NSNumber numberWithInt:0];
    NSNumber *total = [NSNumber numberWithInt:0];


    [super viewDidLoad];
    bool first = true;
    //Find the worst and best and average graph
    for(int i=0;i<tmp.numberOfTimes;i++)
    {
        //LTTime *myTime = [[LTTime alloc] init];
        LTTime *tmpTime = [tmp timeAtIndex:i];
        if(first)
        {
            first = false;
            min = tmpTime.time;
        }
        if(min>tmpTime.time)
        {
            min = tmpTime.time;
        }
        if(max<tmpTime.time)
        {
            max = tmpTime.time;
        }
        total = @( [tmpTime.time intValue] + [total intValue] );

    }
    avg = @( [total floatValue]/tmp.numberOfTimes);

    self.bestGraph.frame = CGRectMake(self.bestGraph.frame.origin.x,self.timerGraph.frame.origin.y,self.timerGraph.frame.size.width+130,self.timerGraph.frame.size.height);

    }

观点的定义:

@property (weak, nonatomic) IBOutlet UIView *bestGraph;

enter image description here

3 个答案:

答案 0 :(得分:1)

尝试将代码放入

 - (void)viewWillLayoutSubviews

方法

答案 1 :(得分:0)

根据你的项目,我不知道这是否属实。

viewWillAppear而不是viewDidLoad中尝试使用相同的代码。

当应用程序第一次运行时,

viewDidLoad只会调用一次。

希望它对你有所帮助。谢谢:))

答案 2 :(得分:0)

问题是ios autolayout被勾选,所以我无法以这种方式添加。所以我决定创建自己的视图,只要它ViewWillAppear从视图中删除所有内容并再次添加它们(因为视图更改频繁)。

我认为学习如何手工创建GUI元素而不是IButton会更好。