【问题标题】:objective-c change width of custom image view objectobjective-c 更改自定义图像视图对象的宽度
【发布时间】:2010-11-20 18:29:32
【问题描述】:

我的主视图上有 3 个按钮,名为 btn_easy、btn_medium 和 btn_hard,我想在单击时更改名为 racquet_green 和 racquet_yellow 的两个自定义图像视图对象的宽度。

单击按钮时我必须开始执行该方法的代码是:

   -(IBAction)buttonPressed:(id)sender{
      UIButton *button = (UIButton*)sender;
    if([button.titleLabel.text isEqualToString:@"easy"]){
        NSLog(@"easy clicked");
            //change width of racquet_green and racquet_yellow to 100px
      }
      if([button.titleLabel.text isEqualToString:@"medium"]){
        NSLog(@"medium clicked");
            //change width of racquet_green and racquet_yellow to 60px
      }
      if([button.titleLabel.text isEqualToString:@"hard"]){
        NSLog(@"hard clicked");
           //change width of racquet_green and racquet_yellow to 40px
      }
   }

谁能帮我弄清楚如何更改这些自定义视图对象的宽度?

谢谢

【问题讨论】:

    标签: objective-c cocoa-touch image view object


    【解决方案1】:
    rect = CGRectMake(0, 0, PixelsX, PixelsY);
    [myView setFrame:rect];
    

    【讨论】:

    • 哪里 myView 是 racquet_green 和 racquet_yellow 图像视图?
    • 是的,myView 只是一个占位符
    • 这不起作用,首先抛出一个错误,说 rect 未定义。所以我走到我的代码顶部并添加#define rect 64。(64是默认像素)。这样做之后,我得到一个错误,rect = CGRectMake 行说“需要左值作为赋值的左操作数”和 [racquet_yellow setFrame:rect];行抛出错误说“'setFrame:'的参数 1 的类型不兼容”
    • rect 必须来自 CGRect 类型。没有理由仅仅因为我没有写就投票给我,您可以查看手册以查看 CGRectMake 创建的内容以及 UIView 框架 ivar 的类型。
    • 我添加了语法:CGRect rect = CGRectMake(0,0,64,5);但我收到一条错误消息,提示“预期标识符或数字常量之前的'('。我在这里缺少什么?
    【解决方案2】:
       [racquet_yellow setFrame:CGRectMake(0,0,35,5)];
       [racquet_green setFrame:CGRectMake(0,0,35,5)];
    

    完美运行,但请稍等——我还想让桨叶居中于视图的顶部和底部。我通过在上面发布的行下方添加 2 行来做到这一点。

    [racquet_yellow setFrame:CGRectMake(((self.view.bounds.size.width/2)-(racquet_yellow.bounds.size.width/2)),self.view.bounds.size.height-20,50,5)];
    [racquet_green setFrame:CGRectMake(((self.view.bounds.size.width/2)-(racquet_green.bounds.size.width/2)),15,50,5)]; 
    

    我必须用 4 行而不是 2 行来执行此操作,因为如果我在设置桨的宽度之前设置 x,y 位置,那么 x,y 位置会稍微偏离。因此,我们先设置宽度、高度,然后 x,y 保持宽度和高度,因为我们不想将其设置回 0,0。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      • 1970-01-01
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多