0

我在界面构建器中添加了一个图像按钮,我想使用 CGPointMake 定位它,所以我将按钮 IBOutlet 添加到 .h 文件中,然后在 .m 文件中添加了一个 CALayer,这是我的代码......
在 .h 文件中

// This is the .h file
@interface ViewController : UIViewController
{
   IBOutlet UIButton *thebtn;
}

在 .m 文件中

// This is the .m file
- (void)viewDidLoad
{
   CALayer *btn = thebtn.layer;
   btn.position = CGPointMake(480, 150);
   btn.opacity = 0.4f;
   [self.view.layer addSublayer:btn];
}

所以这很好,但我的问题是按钮位置没有改变但按钮不透明度发生了变化,那么我该如何解决这个问题?
提前致谢

4

2 回答 2

1

我认为为了改变视图的位置和不透明度等目的,你最好使用一个UIView对象(UIButton在你的情况下)而不是它的CALAyer属性。这应该有效:

- (void)viewDidLoad
{
   thebtn.center = CGPointMake(x, y);
   thebtn.alpha = 0.4f;
}
于 2013-10-25T19:54:52.037 回答
1

尝试执行以下操作:

首先,将您的代码移动到viewDidAppear. 摆脱layer代码。另外,添加setNeedsLayout调用。这是一个例子:

-(void)viewDidAppear 
{
    thebtn.center = CGPointMake(480, 150);
    thebtn.opacity = 0.4f;
    [self setNeedsLayout];
}

更新

我弄清楚了问题所在。您必须关闭“自动布局”。之后,您的视图将重新定位到您想要的位置。

请参阅此链接以了解如何禁用Auto Layout

希望这可以帮助!

于 2013-10-25T21:50:25.103 回答