如何在ios6& ios7中显示4英寸屏幕和3.5英寸屏幕的UIButton和UITableview

时间:2013-12-02 09:15:07

标签: ios iphone objective-c xcode5

我正在开发一款应用。在应用程序中,我为ios7和ios6编写了一个3.5英寸屏幕和4英寸屏幕的代码。我拿了一个视图控制器;在这个视图控制器中我想显示两个图像,一个用于顶部,另一个用于底部。还显示登录和注销按钮并登录Tableview。在ios7& ios6 3.5英寸屏幕和4英寸屏幕上,显示两个图像(如顶部图像和底部图像)没有问题。这两个图像正确显示。但是没有显示按钮和UITableview。我无法理解显示UIButton和UITableview的问题所在。任何人都请给我一些想法。我是编程新手。提前谢谢。

以下是我的代码。

Viewcontroller.m(适用于ios7和ios6的3.5英寸和4英寸屏幕)。

 if ([[UIScreen mainScreen] bounds].size.height == 568)  
  {

   if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
    {

     imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 65, 162, 57)];

     imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 415, 300, 153 )];

     // Button Login for ios7 4-inches screen.

     btnLogin.frame = CGRectMake(20, 230, 127, 32);

     // Create Login for UITableview

     tableVw=[[UITableView alloc] initWithFrame:CGRectMake(0, 80, 320, 123) style:UITableViewStyleGrouped];

  }

  else
   {

   imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 45, 162, 57)];

   imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 395, 300, 153 )];

   // Button Login for ios6 4-inches screen.

   btnLogin.frame = CGRectMake(20, 230, 127, 32);

   tableVw=[[UITableView alloc] initWithFrame:CGRectMake(0, 80, 320, 123) style:UITableViewStyleGrouped];

    }

   imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];

   [self.view addSubview:imgLogo];

   imgBuilding.image=[UIImage imageNamed:@"image-02.png"];

   imgBuilding.alpha=0.4;      

   [self.view addSubview:imgBuilding];

   btnLogin = [UIButton buttonWithType:UIButtonTypeRoundedRect];

   [btnLogin addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchDown];

   [btnLogin setBackgroundImage:[UIImage imageNamed:@"Sign-in-button.png"] forState:UIControlStateNormal];

   [self.view addSubview:btnLogin];

   // create Login tableview properties

   tableVw.dataSource = self;       
   tableVw.delegate = self;

   tableVw.backgroundColor=[UIColor clearColor];

   tableVw.scrollEnabled=NO;

   tableVw.scrollsToTop=NO;

   [self.view addSubview:tableVw];

 }

/ * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** /     /*适用于ios6和ios7的3.5英寸屏幕 * ** * ** * ** * ** * ** * ** * ** * ** * ** * *** /

/ * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** * ** /

 else
 {

  if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7)
   {

    imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 70, 162, 57)];

    imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 345, 320,140 )];

    btnLogin.frame = CGRectMake(20, 200, 127, 32);

    // create Login Tableview

    tableVw=[[UITableView alloc] initWithFrame:CGRectMake(10, 85, 300, 123) style:UITableViewStyleGrouped];

   }

   else
   {

    imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 50, 162, 57)];

    imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 325, 320,140 )];

    btnLogin.frame = CGRectMake(20, 200, 127, 32);

    tableVw=[[UITableView alloc] initWithFrame:CGRectMake(10, 85, 300, 123) style:UITableViewStyleGrouped];

   }

   imgLogo.image=[UIImage imageNamed:@"Logo-01.png"];

   [self.view addSubview:imgLogo];

   imgBuilding.image=[UIImage imageNamed:@"image-02.png"];

   imgBuilding.alpha=0.4;

   [self.view addSubview:imgBuilding];

   // Create Button Properties

   btnLogin = [UIButton buttonWithType:UIButtonTypeRoundedRect];

   [btnLogin addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchDown];

   [btnLogin setBackgroundImage:[UIImage imageNamed:@"Sign-in-button.png"] forState:UIControlStateNormal];

   [self.view addSubview:btnLogin];

   // Create Login Tableview properties

   tableVw.dataSource = self;     
   tableVw.delegate = self;

   tableVw.backgroundColor=[UIColor clearColor];

   tableVw.scrollEnabled=NO;

   tableVw.scrollsToTop=NO;

   [self.view addSubview:tableVw];


   }

  }

1 个答案:

答案 0 :(得分:1)

试试这段代码。我对你的代码进行了修改。

- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    if ([self respondsToSelector:@selector(edgesForExtendedLayout)])
        self.edgesForExtendedLayout = UIRectEdgeNone;

    UIImageView *imgLogo;
    UIImageView *imgBuilding;
    UIButton *btnLogin = [UIButton buttonWithType:UIButtonTypeCustom];
    UITableView *tableVw;
    if ([[UIScreen mainScreen] bounds].size.height == 568){

        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7){

            imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 65, 162, 57)];
            imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 415, 300, 153 )];

            btnLogin.frame = CGRectMake(20, 230, 127, 32);

            tableVw=[[UITableView alloc] initWithFrame:CGRectMake(0, 123, 320, 100) style:UITableViewStylePlain];
        }else{

            imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 45, 162, 57)];

            imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(8, 395, 300, 153 )];



            btnLogin.frame = CGRectMake(20, 210, 127, 32);

            tableVw=[[UITableView alloc] initWithFrame:CGRectMake(0, 103, 320, 100) style:UITableViewStylePlain];
        }

        imgLogo.image=[UIImage imageNamed:@"icon.png"];
        [self.view addSubview:imgLogo];
        imgBuilding.image=[UIImage imageNamed:@"icon.png"];
        imgBuilding.alpha=0.4;
        [self.view addSubview:imgBuilding];

        [btnLogin addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchDown];
        [btnLogin setBackgroundColor:[UIColor blackColor]];
        [self.view addSubview:btnLogin];

        tableVw.scrollEnabled=NO;
        tableVw.scrollsToTop=NO;
        tableVw.dataSource=self;
        tableVw.delegate=self;
        [self.view addSubview:tableVw];

    }else{

        if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7){

            imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 70, 162, 57)];
            imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 345, 320,140 )];

            btnLogin.frame = CGRectMake(20, 230, 127, 32);

            tableVw=[[UITableView alloc] initWithFrame:CGRectMake(10, 127, 300, 100) style:UITableViewStylePlain];
        }else{

            imgLogo=[[UIImageView alloc]initWithFrame:CGRectMake(75, 50, 162, 57)];
            imgBuilding=[[UIImageView alloc]initWithFrame:CGRectMake(0, 325, 320,140 )];
            btnLogin.frame = CGRectMake(20, 200, 127, 32);

            tableVw=[[UITableView alloc] initWithFrame:CGRectMake(10, 85, 300, 123) style:UITableViewStylePlain];
        }

        imgLogo.image=[UIImage imageNamed:@"icon.png"];
        [self.view addSubview:imgLogo];
        imgBuilding.image=[UIImage imageNamed:@"icon.png"];
        imgBuilding.alpha=0.4;
        [self.view addSubview:imgBuilding];

        [btnLogin addTarget:self action:@selector(login) forControlEvents:UIControlEventTouchDown];
        btnLogin.backgroundColor=[UIColor blackColor];
        [self.view addSubview:btnLogin];

        tableVw.dataSource = self;
        tableVw.delegate = self;
        tableVw.scrollEnabled=NO;
        tableVw.scrollsToTop=NO;
        [self.view addSubview:tableVw];
    }

}


- (NSInteger)numberOfSectionsInTableView:(UITableView *)aTableView
{
    return 1;
}
- (NSInteger)tableView:(UITableView *)aTableView numberOfRowsInSection:(NSInteger)section
{
    return 2;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return 40;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

    NSString *CellIdentifier =[NSString stringWithFormat:@"%D",indexPath.row];

    UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];

    cell=[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];

    cell.textLabel.text=@"1";


    return cell;

}