广

IOS开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    iOS开发之手动布局子视图

    2018-04-07 07:49:24 次阅读 稿源:互联网
    广告

    手动布局子视图;
    下面先看下效果图,我们今天要实现的效果:


    这里我们默认用storyboard启动:
    首先我们要在白色的屏幕上面创建一个父视图SuperView(蓝色的背景),在父视图里面创建四个小视图(橘黄色的背景)
    下面看代码,
    在SuperView.h文件里面:

    #import <UIKit/UIKit.h>@interface SuperView : UIView{ UIView * _view01; UIView * _view02; UIView * _view03; UIView * _view04;}//声明创建视图函数-(void) createSubViews;@end在SuperView.m文件里面:#import "SuperView.h"@interface SuperView ()@end@implementation SuperView-(void) createSubViews{ //左上角视图 _view01 = [[UIView alloc] init]; _view01.frame=CGRectMake(0, 0, 40, 40); //右上角视图 _view02 = [[UIView alloc] init]; _view02.frame=CGRectMake(self.bounds.size.width-40, 0, 40, 40); //右下角视图 _view03 = [[UIView alloc] init]; _view03.frame=CGRectMake(self.bounds.size.width-40, self.bounds.size.height-40, 40, 40); //左下角视图 _view04 = [[UIView alloc] init]; _view04.frame=CGRectMake(0, self.bounds.size.height-40, 40, 40); _view01.backgroundColor=[UIColor orangeColor]; _view02.backgroundColor=[UIColor orangeColor]; _view03.backgroundColor=[UIColor orangeColor]; _view04.backgroundColor=[UIColor orangeColor]; [self addSubview:_view01]; [self addSubview:_view02]; [self addSubview:_view03]; [self addSubview:_view04];}//当需要重新布局时调用此函数//通过此函数重新设定子视图的位置//手动调整子视图的位置-(void)layoutSubviews{ [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:1]; _view01.frame=CGRectMake(0, 0, 40, 40); _view02.frame=CGRectMake(self.bounds.size.width-40, 0, 40, 40); _view03.frame=CGRectMake(self.bounds.size.width-40, self.bounds.size.height-40, 40, 40); _view04.frame=CGRectMake(0, self.bounds.size.height-40, 40, 40); [UIView commitAnimations];}@end

    在ViewController.m文件里面:

    #import "ViewController.h"#import "SuperView.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //创建一个父视图 SuperView * sView = [[SuperView alloc]init]; sView.frame = CGRectMake(20, 20, 180, 280); //父视图调用函数创建四个小视图 [sView createSubViews]; sView.backgroundColor = [UIColor blueColor]; [self.view addSubview:sView]; UIButton * btn01 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btn01.frame = CGRectMake(240, 480, 80, 40); [btn01 setTitle:@"放大" forState:UIControlStateNormal]; [btn01 addTarget:self action:@selector(pressLarge) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn01]; UIButton * btn02 = [UIButton buttonWithType:UIButtonTypeRoundedRect]; btn02.frame = CGRectMake(240, 520, 80, 40); [btn02 setTitle:@"缩小" forState:UIControlStateNormal]; [btn02 addTarget:self action:@selector(pressSmall) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn02]; sView.tag = 101;}//放大父视图-(void) pressLarge{ SuperView * sView = (SuperView*)[self.view viewWithTag:101]; [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:1]; sView.frame=CGRectMake(20, 20, 280, 400); [UIView commitAnimations];}//缩小父视图-(void) pressSmall{ SuperView * sView = (SuperView*)[self.view viewWithTag:101]; [UIView beginAnimations:nil context:nil]; [UIView setAnimationDuration:1]; sView.frame=CGRectMake(20, 20, 180, 280); [UIView commitAnimations];}- (void)didReceiveMemoryWarning { [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}@end

     以上代码书写完毕,就达到了上面视图的效果,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告