我有EAGLView和它的UIButton。在ViewController中,我需要在横向模式下显示相同的按钮,点击事件在EAGLView中显示。我试着设置[eaglView.save setFrame:CGRectMake(360,10,40,40)];但尺寸在景观中没有变化,仍然显示纵向模式框架。
EAGLView.h:
@interface BooksEAGLView : UIView{
UIButton *save;
}
@property(nonatomic, retain) UIButton *save;
EAGLView.mm:
save=[UIButton buttonWithType:UIButtonTypeCustom];
[save setImage:[UIImage imageNamed:@"share_1.png"] forState:UIControlStateNormal];
[save setFrame:CGRectMake(240, 10, 40, 40)];
[save addTarget:self action:@selector(save:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:save];
Viewcontroller.mm:
eaglView = [[BooksEAGLView alloc] initWithFrame:viewFrame delegate:self appSession:vapp];
[self setView:eaglView];
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration
{
if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight){
[eaglView.save setFrame:CGRectMake(360, 10, 40, 40)];
}else {
}
}
}
答案 0 :(得分:0)
将以下代码放在您调用BooksEAGLView的viewcontroller中
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration
{
if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight){
[eaglView.save setFrame:CGRectMake(360, 10, 40, 40)];
}else {
[eaglView.save setFrame:CGRectMake(240, 10, 50, 50)];
}
}
答案 1 :(得分:0)
请参阅此代码
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
eaglView = [[BooksEAGLView alloc] initWithFrame:CGRectMake(100, 100, 150, 200)];
[self setView:eaglView];
}
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation) interfaceOrientation duration:(NSTimeInterval)duration
{
if(interfaceOrientation == UIInterfaceOrientationLandscapeLeft || interfaceOrientation == UIInterfaceOrientationLandscapeRight){
[eaglView.save setFrame:CGRectMake(360, 10, 40, 40)];
}else {
[eaglView.save setFrame:CGRectMake(240, 10, 50, 50)];
}
}
答案 2 :(得分:0)
<强> BooksEAGLEView.h 强>
#import <UIKit/UIKit.h>
@interface BooksEAGLView : UIView{
UIButton *save;
}
@property(nonatomic, retain) UIButton *save;
@end
答案 3 :(得分:0)
的 BooksEAGLEView.m 强>
#import "BooksEAGLView.h"
@implementation BooksEAGLView
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
save=[UIButton buttonWithType:UIButtonTypeCustom];
[save setFrame:CGRectMake(240, 10, 50, 50)];
[save setBackgroundColor:[UIColor redColor]];
[save setTitle:@"Save" forState:UIControlStateNormal];
[save addTarget:self action:@selector(save:) forControlEvents:UIControlEventTouchUpInside];
[self addSubview:save];
}
return self;
}
-(void)save:(id)sender
{
NSLog(@"clicked...");
}