iOS6下自定义UI控件外观效果

本文介绍如何在iOS应用中自定义UI界面,包括导航栏、底部Tab栏等组件的美化技巧。通过实例演示如何使用UIImage定制不同状态下的背景、按钮样式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >



尽管iOS原生的UI控件就已经有很不错的显示效果,但是App开发者仍然希望自己的产品与众不同,所以自定义UI外观成了每个App产品开发必做之事。今天就来做一个在iOS6下实现自定义UI的demo,内容及Demo来源于国外iOS博客raywenderlich,先看看美化前后效果差别(左边为美化前,右边为美化后):

                           





整个Demo里面几乎包含所有iOS下的UI控件,以下我只对关键代码给出说明,详情大家可以下载附上的Demo源码查看。好了,首先在AppDelegate.m中新建了一个方法customizeApperance(),所有的美化效果都在这个方法里完成,并且在application:didFinishLauchingWithOptions:里面调用这个方法。


1.自定义导航栏


  1. //竖屏  
  2.     UIImage *image44 = [[UIImage imageNamed:@"surf_gradient_textured_44"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];  
  3.     [[UINavigationBar appearance] setBackgroundImage:image44 forBarMetrics:UIBarMetricsDefault];  
  4.     //横屏  
  5.     UIImage *gradientImage32 = [[UIImage imageNamed:@"surf_gradient_textured_32"]  
  6.         resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];  
  7.     [[UINavigationBar appearance] setBackgroundImage:gradientImage32  
  8.                                        forBarMetrics:UIBarMetricsLandscapePhone];  
//竖屏
    UIImage *image44 = [[UIImage imageNamed:@"surf_gradient_textured_44"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    [[UINavigationBar appearance] setBackgroundImage:image44 forBarMetrics:UIBarMetricsDefault];
    //横屏
    UIImage *gradientImage32 = [[UIImage imageNamed:@"surf_gradient_textured_32"]
        resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    [[UINavigationBar appearance] setBackgroundImage:gradientImage32
                                       forBarMetrics:UIBarMetricsLandscapePhone];


其中resizableImageWithCapInsets方法是iOS5以后才有的,目的是用来指定图片拉伸区域,其参数Insets制定可被拉伸的图片区域,UIEdgetInsetsMake有四个参数,按顺序分别标示top、left、bottom、right,指定的数字分别表示框起来的矩形框离图片边界的距离,只有矩形框内的区域才会被拉伸,如下图所示: 

              

图片只会被拉伸红色矩形区域,假如红框左右距离图片边距分别为25,距离上下边距为0,则Insets的写法就是这样:UIEdgetInsetsMake(0,25,0,25),如果要使整张图片拉伸,则四个参数全部传0即可。代码中分别指定了横屏和竖屏下的两种方式。


同时,可以指定导航栏底部的阴影图片、颜色和UIBarButtonItem的样式等:

  • 导航栏阴影


  1. [[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"navBarShadow"]];  
[[UINavigationBar appearance] setShadowImage:[UIImage imageNamed:@"navBarShadow"]];

  • 导航栏按钮样式
  1. UIImage *button30 = [[UIImage imageNamed:@"button_textured_30"]  
  2.                          resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];  
  3.     [[UIBarButtonItem appearance] setBackgroundImage:button30 forState:UIControlStateNormal  
  4.                                           barMetrics:UIBarMetricsDefault];  
UIImage *button30 = [[UIImage imageNamed:@"button_textured_30"]
                         resizableImageWithCapInsets:UIEdgeInsetsMake(0, 5, 0, 5)];
    [[UIBarButtonItem appearance] setBackgroundImage:button30 forState:UIControlStateNormal
                                          barMetrics:UIBarMetricsDefault];

  • 导航栏返回按钮样式

  1. UIImage *buttonBack30 = [[UIImage imageNamed:@"button_back_textured_30"]  
  2.                              resizableImageWithCapInsets:UIEdgeInsetsMake(0, 13, 0, 5)];  
  3.     [[UIBarButtonItem appearance] setBackButtonBackgroundImage:buttonBack30  
  4.                                                       forState:UIControlStateNormal barMetrics:UIBarMetricsDefault];  


2.设置底部Tab栏的样式(背景、选中、默认)


  1. UIImage *tabBackground = [[UIImage imageNamed:@"tab_bg"]  
  2.                               resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];  
  3.     [[UITabBar appearance] setBackgroundImage:tabBackground];  
  4.     [[UITabBar appearance] setSelectionIndicatorImage:  
  5.      [UIImage imageNamed:@"tab_select_indicator"]];  
UIImage *tabBackground = [[UIImage imageNamed:@"tab_bg"]
                              resizableImageWithCapInsets:UIEdgeInsetsMake(0, 0, 0, 0)];
    [[UITabBar appearance] setBackgroundImage:tabBackground];
    [[UITabBar appearance] setSelectionIndicatorImage:
     [UIImage imageNamed:@"tab_select_indicator"]];

效果如下:

 



内容概要:本文探讨了在MATLAB/SimuLink环境中进行三相STATCOM(静态同步补偿器)无功补偿的技术方法及其仿真过程。首先介绍了STATCOM作为无功功率补偿装置的工作原理,即通过调节交流电压的幅值和相位来实现对无功功率的有效管理。接着详细描述了在MATLAB/SimuLink平台下构建三相STATCOM仿真模型的具体步骤,包括创建新模型、添加电源和负载、搭建主电路、加入控制模块以及完成整个电路的连接。然后阐述了如何通过对STATCOM输出电压和电流的精确调控达到无功补偿的目的,并展示了具体的仿真结果分析方法,如读取仿真数据、提取关键参数、绘制无功功率变化曲线等。最后指出,这种技术可以显著提升电力系统的稳定性与电能质量,展望了STATCOM在未来的发展潜力。 适合人群:电气工程专业学生、从事电力系统相关工作的技术人员、希望深入了解无功补偿技术的研究人员。 使用场景及目标:适用于想要掌握MATLAB/SimuLink软件操作技能的人群,特别是那些专注于电力电子领域的从业者;旨在帮助他们学会建立复杂的电力系统仿真模型,以便更好地理解STATCOM的工作机制,进而优化实际项目中的无功补偿方案。 其他说明:文中提供的实例代码可以帮助读者直观地了解如何从零开始构建一个完整的三相STATCOM仿真环境,并通过图形化的方式展示无功补偿的效果,便于进一步的学习与研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值