TTPhotoViewController 在不同interfaceOrientation下的显示问题

本文探讨了在使用Three20库的TTPhotoViewController显示照片时,遇到的问题及解决方案。在竖屏显示时,图片自动放大并可能显示错误内容;而在横屏时,图片显示过小。通过修改代码,实现根据屏幕方向调整图片显示模式,确保在不同旋转方向下都能正确显示照片。

        最近在使用Three20库进行开发,并使用了TTPhotoViewController 来显示照片,不清楚大家是否遇到过我这样的问题:直接TTPhotoViewController ,使用在竖屏的时候,图片显示是错误了,此时图片上自动放大,且经常会显示到其他页的图片;而在横屏的情况下是正确的。

        参考了网上一些解决方法:将TTPhotoView.m的- (void)setImage:(UIImage*)image函数中的UIViewContentModeScaleAspectFill改为UIViewContentModeScaleAspectFit,依照该方法修改后,此时发现竖屏是正确的,但是横屏确显示的是小图,无法满屏显示。

       由此得出,在不同的interfaceOrientation下,需设置不同的contentmode。因此经过实验,修改代码如下:

TTPhotoViewController .m

增加函数:updatePhotoViewContentMode:(UIInterfaceOrientation)interfaceOrientation

///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)updatePhotoViewContentMode:(UIInterfaceOrientation)interfaceOrientation
{
    TTPhotoView* centerPhotoView = self.centerPhotoView;
    UIViewContentMode currentContentMode;
    if (UIInterfaceOrientationIsLandscape(interfaceOrientation)) {
        currentContentMode = UIViewContentModeScaleAspectFill;
    }
    else{
        currentContentMode = UIViewContentModeScaleAspectFit;
    }
    //先设置非当前view到contentMode,防止旋转时,会看到非centerPhotoview
    for (TTPhotoView* photoView in _scrollView.visiblePages.objectEnumerator) {
        if (centerPhotoView == photoView)
            break;
        photoView.contentMode = currentContentMode;
    }
    centerPhotoView.contentMode = currentContentMode;
}

修改代码:

///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
                                         duration:(NSTimeInterval)duration {
  [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration];
  [self updateToolbarWithOrientation:toInterfaceOrientation];
  [self updatePhotoViewContentMode:toInterfaceOrientation];
}

///////////////////////////////////////////////////////////////////////////////////////////////////
- (void)loadImages {
  TTPhotoView* centerPhotoView = self.centerPhotoView;
  for (TTPhotoView* photoView in _scrollView.visiblePages.objectEnumerator) {
    if (photoView == centerPhotoView) {
      [photoView loadPreview:NO];

    } else {
      [photoView loadPreview:YES];
    }
    //修改interfaceOrientation
    if (UIInterfaceOrientationIsLandscape(self.interfaceOrientation)){
      photoView.contentMode = UIViewContentModeScaleAspectFill;
    }
    else{
      photoView.contentMode = UIViewContentModeScaleAspectFit;
    }
  }

  if (_delayLoad) {
    _delayLoad = NO;
    [self startImageLoadTimer:kPhotoLoadLongDelay];

  } else {
    [centerPhotoView loadImage];
  }
}


内容概要:本文针对T型三电平逆变器在电网电压跌落条件下的低电压穿越(LVRT)问题,提出了一种结合改进电流解耦控制与直流侧中点电位平衡的综合控制策略。通过建立逆变器的数学模型,采用双二阶广义积分器(DSOGI)实现电网电压正负序分量的精确分离,并在此基础上设计自适应无功支撑与故障电流限幅控制,以满足LVRT对无功补偿和电流安全性的要求。为提升不对称故障下的动态性能,引入改进的正负序解耦电流控制方法,有效克服传统PI控制器在耦合干扰下的控制滞后问题。同时,结合零序电压注入法对中点电位进行主动调控,抑制中点电压漂移,保障系统长期稳定运行。整个控制方案在Simulink平台上完成建模与仿真验证,结果表明该方法在电网故障期间具有优良的动态响应特性、稳定的中点电位控制能力和可靠的并网运行性能。; 适合人群:具备电力电子、自动控制或新能源并网技术背景,从事逆变器控制算法开发、微电网系统集成或可再生能源发电系统研究的工程技术人员及高校研究生。; 使用场景及目标:①用于提升T型三电平逆变器在电网故障条件下的并网可靠性与电能质量;②为高比例新能源接入场景下的LVRT控制策略设计提供理论支撑与技术路径;③适用于需要实现高性能电流控制与中点电位稳定的工业级变流器控制系统开发。; 阅读建议:建议结合提供的Simulink仿真模型进行学习,重点剖析正负序分离、改进电流解耦控制环设计及中点电位平衡模块的协同工作机制,可通过设置不同类型的电网故障(如单相短路、两相短路)和调节控制参数开展对比实验,深入掌握各模块对系统整体性能的影响规律。
内容概要:本文针对不对称电网故障条件下T型三电平逆变器的低电压穿越(LVRT)问题,提出了一种多目标协同控制策略,并通过Simulink平台实现了系统仿真验证。该策略综合考虑了故障期间电网电压跌落应对、正负序电流的精确解耦控制以及直流侧中点电位稳定三大关键问题,构建了多层次、多目标协同控制架构。通过引入双二阶广义积分器(DSOGI)实现电网电压正负序分量的快速、准确分离,结合改进的正负序解耦电流控制环路设计,有效抑制负序电流对系统的影响并保障并网电能质量;同时,采用零序电压注入法实现中点电位主动平衡控制,解决了传统控制中电位漂移导致器件应力不均的问题。整体控制方案提升了逆变器在复杂不对称故障下的运行稳定性与可靠性。; 适合人群:从事电力电子、新能源并网、电力系统自动化等领域的科研人员与工程技术人员,以及具备一定Simulink仿真基础和电力系统分析能力的研究生或高年级本科生。; 使用场景及目标:①深入研究T型三电平逆变器在不对称电网故障下的动态响应特性与控制挑战;②掌握低电压穿越、正负序电流解耦控制、中点电位平衡等核心技术的协同设计方法与实现原理;③为高性能逆变器控制系统在实际工程中的设计、优化与仿真验证提供理论依据和技术参考。; 阅读建议:建议结合文中详细的控制策略理论分析与Simulink模型结构图进行对照学习,重点关注双二阶广义积分器、正负序电流环设计、零序电压注入模块及SVPWM调制单元的实现细节,通过调整仿真工况并分析实验结果,深入理解各控制环节的协同作用机制与系统整体性能表现。
内容概要:本文研究了一种基于阶跃响应的V-Tiger自动增益调整PID控制器优化方法,旨在通过Matlab代码实现对PID控制器参数的智能化自动整定。文章系统阐述了PID控制的核心性能指标、V-Tiger自动增益控制器的技术原理以及阶跃响应整定的基础理论,提出了一种融合阶跃响应特征提取与多目标协同优化策略的自动整定方案,并引入自适应迭代校正机制以提升控制精度与系统鲁棒性。所提方法通过采集被控对象的阶跃响应曲线,提取关键动态特征参数,结合多目标优化算法实现比例、积分、微分增益的协同寻优,有效解决了传统手动整定效率低、适应性差的问题。仿真实验结果表明,该方法在动态响应速度、抗干扰能力及系统稳定性方面均表现出优越性能,具有较强的工程应用价值。; 适合人群:具备自动控制理论基础和Matlab编程能力,从事控制工程、自动化、电气工程及相关领域的科研人员、工程师以及高校研究生。; 使用场景及目标:①适用于工业过程控制、电机驱动、电力电子变换器等需高精度PID参数整定的实际工程场景;②目标在于实现PID控制器的智能化、自动化参数整定,降低对专家经验的依赖,减少人工调试成本,提升控制系统的动态响应品质与运行稳定性;③为科研工作者提供一套可复现、可扩展的Matlab代码框架,便于开展后续算法改进与工程化应用研究。; 阅读建议:建议读者结合文中理论推导与提供的Matlab代码进行同步学习,重点关注阶跃响应特征提取方法与多目标优化策略的设计逻辑,通过仿真实验对比不同整定方法的控制效果,深入理解V-Tiger算法的工作机制及其在复杂控制系统中的应用技巧。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值