当前位置: 首页 > news >正文

【iOS-Cocos2d游戏开发之七】添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!...

  好像有段时间没有更新了,主要项目比较着急,不过现在cocos2d基本算是全拿下了,进展很顺利,那么在这里主要给大家介绍下一些Himi遇到的问题;

本章介绍两个知识点:

               1. 在Cocos2d中添加系统组件;(本例中添加UIView 并嵌套一些View)

               2. 解决View设置透明后,View中的其他组件也跟着透明的问题;详细问题如下:(网上找的网友的问题贴)

 

 

 
   
  1. “   如何把背景图片设置为半透明   ” 
  2.  
  3. 现在的界面大概是这样的:最底下一个UIVIEW,这个UIVIEW有一个自己的背景图, 
  4. 然后在这个UIVIEw之上有第二个VIEW,这个VIEW也有一个背景图。 
  5. 现在要达到的效果是使第二个VIEW的图像不会覆盖最底层VIEW的背景图。 
  6. 把上面一层VIEW的ALpha值改小我觉得不行,因为上面一层VIEW里面也有自己各种部件, 
  7. 如果这么改的话,上面一层VIEW里面的所有的元素也会被透明化,但这不是我要的效果。。。 
  8. 透明的仅仅是第二层的背景图。 

 

以上是网友的问题,其实总结起来问题就是咱们今天要讲述的的第二点问题;

OK,首先介绍如何在Cocos2d中添加系统组件;

首先创建一个cocos2d项目,我这里使用的cocos2d版本为1.0.0

然后创建一个UIViewController类,名字为: MyUIView (这个创建文件步骤就不说啦~)

整个项目目录如下图所示:

 

 

我们先在我们的MyUIView.xib中添加点东西,不然显示出来也不能明显看出;OK,双击 xib文件进入编写(我的xcode是4.1针对lion的版本)

我这里添加了一个View,然后放置了一个button(方便讲解本章的第二个问题)如下图:

 

OK,save下,然后开始编写在cocos2d中显示系统组件的代码:HelloWorldLayout.m  如下:

 

 
   
  1. MyUIView *view = [[MyUIView alloc] initWithNibName:@"MyUIView" bundle:nil]; 
  2.         [[[CCDirector sharedDirector] openGLView] addSubview:view.view]; 

 

 

这两句代码位置写在了cocos2d默认给出的场景类中的构造函数里:

 

-(id) init
{

	if( (self=[super init])) {
        
        MyUIView *view = [[MyUIView alloc] initWithNibName:@"MyUIView" bundle:nil];
		[[[CCDirector sharedDirector] openGLView] addSubview:view.view];
        
	}
	return self;
}

 

下面运行看效果:

 

 

很简单的,删除代码也easy,如下代码:

 

 
   
  1. [self.updateUIView.view removeFromSuperview]; 

这样后还要加上[self.updateUIView.view release];这样才真正的从内存中释放掉~

 

然后下面我们开始讲解本博文的第二点知识点;

为了让大家更好的看出问题,我将button设置一个背景图,然后给装有button的view设置灰色的背景,如下图:

 

OK。现在设置我们要设置view半透明,OK,设置alpha为0.5.然后运行看到的效果图如下:

 

 

这个效果明显不对,因为我们想要的是view半透明,其中的button并不需要透明!!!!!

当时遇到此问题就开始各种尝试,因为当时我的项目有好多view,我尝试过在view添加一张ImageView然后将ImageVIew的图与背景图一样,并设置半透明,但是因为很多个view所以最后失败,然后尝试各种度娘,谷歌等,也去对应的群里问了 都是没有找到解决方法,但是最后终于让我尝试出来解决的方法;

其实view的alpha是针对整个view(包括其中的所有组件)的一个透明度,那么如果只是单纯的修改view的透明,其实只要更改它的opacity属性!

点击你的view然后点击其background属性,然后点击other,如下图:

 

 

 

 

将其下方的opacity属性调整为50%,OK,保存当前xib文件 ,运行项目!效果图如下:

 

 

 

这才是应该要的效果,view是50%透明的~组件不受影响;

其实这篇博文讲述的比较简单,属于细节,不过细节决定成败,希望大家遇到类似的细节问题,尽可能的解决不要给自己积累疑问,不然会对后期提高带来极大障碍;

OK,就到这里,童鞋们,撒乐个油~


 





本文转自 xiaominghimi 51CTO博客,原文链接:http://blog.51cto.com/xiaominghimi/645211,如需转载请自行联系原作者

相关文章:

  • 多使用调用堆栈调试VC++代码
  • Hyper-V 2016 系列教程53 What's new in Hyper-V on Windows Server 2016
  • 一个不错的linux学习资料下载的网址
  • Delphi使用资源文件全攻略
  • 检查邮件服务器的postfix-pop3-mysql服务状态的脚本
  • 华为交换机忘记console的密码,怎么恢复出厂设置
  • 1星《微信软文营销实战技巧》:标题党,作者没有实战经验
  • Windows 2008 R2 Sp1平台整合部署Ex2010与Lync Server 2010参考(三)v1.0
  • O(1)时间内删除指定链表结点
  • 关于项目自动化测试架构的改良计划 - DataProviderEngine架构
  • 读《程序员的SQL金典》[3]--表连接、子查询
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • 建造者模式(Java与Kotlin版)
  • oracle无密码登录
  • UNIX/Linux系统取证之信息采集案例
  • ----------
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 2018一半小结一波
  • chrome扩展demo1-小时钟
  • IOS评论框不贴底(ios12新bug)
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Python学习笔记 字符串拼接
  • supervisor 永不挂掉的进程 安装以及使用
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • 排序算法之--选择排序
  • 七牛云假注销小指南
  • 人脸识别最新开发经验demo
  • 入门级的git使用指北
  • 深度解析利用ES6进行Promise封装总结
  • 手机app有了短信验证码还有没必要有图片验证码?
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • linux 淘宝开源监控工具tsar
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • # 安徽锐锋科技IDMS系统简介
  • #git 撤消对文件的更改
  • $ is not function   和JQUERY 命名 冲突的解说 Jquer问题 (
  • $jQuery 重写Alert样式方法
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (day 2)JavaScript学习笔记(基础之变量、常量和注释)
  • (function(){})()的分步解析
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (六)vue-router+UI组件库
  • (转)Linux整合apache和tomcat构建Web服务器
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • .NET CLR Hosting 简介
  • .NET NPOI导出Excel详解
  • .NET 简介:跨平台、开源、高性能的开发平台
  • .net 使用ajax控件后如何调用前端脚本
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .Net8 Blazor 尝鲜
  • @Bean, @Component, @Configuration简析
  • @property python知乎_Python3基础之:property
  • @RunWith注解作用