学习小结6

通过40天的学习,从C语言基础到OC,再到UI初级课程,作者逐步从学生转变为程序员。课程中,知识如同沙漏中的沙粒,老师传授的知识逐渐填充到学习者的头脑中。为确保知识吸收,作者不仅接受老师的教学,还努力进行自我消化。通过实践,作者完成了一个综合题——类相册浏览,并分享了代码。
       40天过去了,从C语言,OC,到现在UI初级的课程已经学完,时间一天天的过去,而我们,也从一个只会简单算法的学生开始向程序员迈进。
      学习就像是一个时间的沙漏,老师是沙漏上端的沙,而我们,就是一开始时沙漏下端的那个空容器,随着一天天的讲解,老师把知识一点点的倒进我们这个空空的容器里,学习时间越长,装下的东西便更多。
      而作为一个接收器,只接受不消化是不行的,因为传过来的知识若不被吸收,量满则溢,那些没有去吸收的知识也会随着时间的推移被脑子过滤掉。所以,有了老师的传授,自己再努力去接受,吸收,那么学到的懂洗就会更多。
     昨天做了一个综合的题,类似相册的浏览,把代码也复制一下,相互学习。

#import "ViewController.h"

#import "PhotoScrollView.h"

@interface ViewController ()

{

    CGFloat width;

    CGFloat height;

}

@end


@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    // Do any additional setup after loading the view, typically from a nib.

    width = self.view.bounds.size.width;

    height = self.view.bounds.size.height;

    //是否自定向下偏移64px

    self.automaticallyAdjustsScrollViewInsets = NO;

    //外层滑动视图

    UIScrollView *scrollView = [[UIScrollView alloc]initWithFrame:self.view.bounds];

    scrollView.delegate = self;

    //内层

    for (int i = 0; i < 5; i ++) {

        PhotoScrollView *psView = [[PhotoScrollView alloc]initWithFrame:CGRectMake(width * i, 0, width, height)];

        psView.tag = 100 + i;

        psView.img = [UIImage imageNamed:[NSString stringWithFormat:@"%d.JPG",i]];

        [scrollView addSubview:psView];

    }

    

    //内容尺寸

    scrollView.contentSize = CGSizeMake(width * 5, height);

    //分页显示

    scrollView.pagingEnabled = YES;

    //隐藏滑动条

    scrollView.showsHorizontalScrollIndicator = NO;

    scrollView.showsVerticalScrollIndicator = NO;

    [self.view addSubview:scrollView];

}




- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

{

    

    NSInteger nowIndex = scrollView.contentOffset.x / width;

//    NSLog(@"%ld",nowIndex);

    if (nowIndex != _lastIndex) {

        PhotoScrollView *imgview =(PhotoScrollView *) [scrollView viewWithTag:_lastIndex + 100];

        imgview.zoomScale = 1;

    }

    _lastIndex = nowIndex;

}



- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end

#import "PhotoScrollView.h"

#import "UIView+viewController.h"

@implementation PhotoScrollView


- (instancetype)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self) {

        _imgView = [[UIImageView alloc]initWithFrame:self.bounds];

//         _imgView.image = self.img;

        self.delegate = self;

        [self addSubview:_imgView];

        

        //缩放倍数

        self.maximumZoomScale = 3;

        self.minimumZoomScale = 1;

        //添加单击事件

        UITapGestureRecognizer *singleTap = [[UITapGestureRecognizer alloc]initWithTarget: self action:@selector(singelTapClick:)];

        [self addGestureRecognizer:singleTap];

        

         //添加2击事件

        UITapGestureRecognizer *doubleTap = [[UITapGestureRecognizer alloc]initWithTarget: self action:@selector(doubleTapClick:)];

        doubleTap.numberOfTapsRequired = 2;

        [self addGestureRecognizer:doubleTap];

        [singleTap requireGestureRecognizerToFail:doubleTap];

    }

    return self;

}


//添加2击事件

- (void)doubleTapClick:(UITapGestureRecognizer *)tap

{

    if (self.zoomScale > 1) {

//        self.zoomScale = 1;

        [self setZoomScale:1 animated:1];

    }else

    {

        [self setZoomScale:3 animated:1];

    }

}


//添加单击事件

- (void)singelTapClick:(UITapGestureRecognizer *)tap

{

    BOOL show = !self.viewController.navigationController.navigationBarHidden;

    //导航栏隐藏与显示

    [self.viewController.navigationController setNavigationBarHidden:show animated:1];

    

//    [[UIApplication sharedApplication]setStatusBarOrientation:show animated:1];

    [[UIApplication sharedApplication] setStatusBarHidden:show withAnimation:UIStatusBarAnimationFade];

}


- (void)setImg:(UIImage *)img

{

    if (_img != img) {

        _img = img;

        _imgView.image = self.img;

    }

}


//缩放时

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView

{

    return _imgView;

}



@end

#import "UIView+viewController.h"


@implementation UIView (viewController)


- (UIViewController *)viewController

{

    UIResponder *next = self.nextResponder;

    

    do {

        if ([next isKindOfClass:[UIViewController class]]) {

            return (UIViewController *)next;

        }

        next = next.nextResponder;

    } while (next);

    

    return nil;

    

}

@end


混合动力汽车(HEV)模型的Simscape模型(Matlab代码、Simulink仿真实现)内容概要:本文档介绍了一个混合动力汽车(HEV)的Simscape模型,该模型通过Matlab代码和Simulink仿真工具实现,旨在对混合动力汽车的动力系统进行建模与仿真分析。模型涵盖了发动机、电机、电池、传动系统等关键部件,能够模拟车辆在不同工况下的能量流动与控制策略,适用于动力系统设计、能耗优化及控制算法验证等研究方向。文档还提及该资源属于一个涵盖多个科研领域的MATLAB仿真资源包,涉及电力系统、机器学习、路径规划、信号处理等多个技术方向,配套提供网盘下载链接,便于用户获取完整资源。; 适合人群:具备Matlab/Simulink使用基础的高校研究生、科研人员及从事新能源汽车系统仿真的工程技术人员。; 使用场景及目标:①开展混合动力汽车能量管理策略的研究与仿真验证;②学习基于Simscape的物理系统建模方法;③作为教学案例用于车辆工程或自动化相关课程的实践环节;④与其他优化算法(如智能优化、强化学习)结合,实现控制策略的优化设计。; 阅读建议:建议使用者先熟悉Matlab/Simulink及Simscape基础操作,结合文档中的模型结构逐步理解各模块功能,可在此基础上修改参数或替换控制算法以满足具体研究需求,同时推荐访问提供的网盘链接获取完整代码与示例文件以便深入学习与调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值