重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
你这个132.0/255.0只能表示RGB中的一个元素的值,颜色的确定要有RGB三个元素决定的。
目前创新互联建站已为数千家的企业提供了网站建设、域名、虚拟空间、网站托管、服务器托管、企业网站设计、寿光网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
例如:
UIColor *color = [UIColor colorWithRed:132.0/255.0 green:133.0/255.0 blue:134.0/255.0 alpha:1.0];
其中alpha是透明度,1.0就是不透明。
hexadecimal code(十六进制编码),简写为 hex code。Hexadecimals (或 hex)是十六进制数字,这意味着它使用十六个不同的符号。
在 CSS 中,我们可以使用 6 位十六进制数字来表示颜色,每 2 位分别表示红色 (R)、绿色 (G) 和蓝色 (B) 成分。例如,#000000 是黑色,同时也是可能的数值中最小的。#FF0000是红色, #00FF00是绿色, #0000FF是蓝色。
你可能会疑惑为什么我们使用6位数来表示一种颜色而不是只用一位或二位,答案是使用6位数可提供给我们巨大数量的颜色变化。
会有多少种可能的颜色?16 个值和 6 个位置意味着我们有 16 的 6 次方,或者说超过 1600 万种可能的颜色。
在实际开发当中,我们会遇到各种设置颜色的场景。有通过RGB三原色设置的、有通过服务器返回十六进制字符串设置的、有设置颜色同时还设置透明度的、有本地使用十六进制设置的,本文将iOS中常用RGB十六进制颜色设置的宏定义及相关分类方法做了一个总结。
RGB
十六进制颜色 Hex
颜色设置宏定义的使用 :
分类的小括号中有分类名字
分类特点:
UIColor + Addition.h 声明
UIColor + Addition.m 实现
在使用的位置导入头文件,或者直接放到pch文件中。
设置RGB颜色
获取颜色的RGB值
本地设置十六进制颜色
字符串设置十六进制颜色
我是楚简约,感谢您的阅读,
喜欢就点个赞呗,“❤喜欢”,
鼓励一下,你在看,我就继续写~
非用户,可以点右上角的三个“...”,然后"在Safari中打开”,就可以点赞咯~
把下面几个宏拷到你的工程中:
//To judge different size of iphone screen......
#define isRetina ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 960), [[UIScreen mainScreen] currentMode].size) : NO)
#define iPhone5 ([UIScreen instancesRespondToSelector:@selector(currentMode)] ? CGSizeEqualToSize(CGSizeMake(640, 1136), [[UIScreen mainScreen] currentMode].size) : NO)
#define isPad (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad)
如图:
然后你就知道该怎么做了。。。
//方法一:
cell .contentView .backgroundColor = [ UIColor redColor ];
//方法二:
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier :CellIdentifier];
UIView* bgview = [[ UIView alloc ] initWithFrame :CGRectMake( 0 , 0 , 1 , 1 )];
bgview .opaque = YES ;
bgview .backgroundColor = [ UIColor orangeColor ];
[cell setBackgroundView :bgview];
//方法三:
- ( void )tableView:( UITableView *)tableView willDisplayCell :( UITableViewCell *)cell forRowAtIndexPath :( NSIndexPath *)indexPath
{
cell .backgroundColor = [ UIColor redColor ];
}
实现此功能有两种方法:
1.在xml中设置主题或自定义style;
Theme.Holo.Light.NoActionBar.TranslucentDecor
Theme.Holo.NoActionBar.TranslucentDecor
style name="AppTheme" parent="AppBaseTheme"
!-- Status Bar --
item name="android:windowTranslucentStatus"true/item
!-- Navigation Bar --
item name="android:windowTranslucentNavigation"true/item
/style
鉴于市面上各种手机的SDK的各种版本,不建议采用这种方法;
2.在代码中控制;
可以首先创建一个BaseActivity,在onCreate方法中进行处理:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (Build.VERSION.SDK_INT = Build.VERSION_CODES.KITKAT) {
setTranslucentStatus(true);
SystemBarTintManager tintManager = new SystemBarTintManager(this);
tintManager.setStatusBarTintEnabled(true);
tintManager.setStatusBarTintResource(R.color.top_bg_color);//通知栏所需颜色
}
setContentView(R.layout.main_activity);
}
@TargetApi(19)
private void setTranslucentStatus(boolean on) {
Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
final int bits = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
if (on) {
winParams.flags |= bits;
} else {
winParams.flags = ~bits;
}
win.setAttributes(winParams);
}
需注意的是, tintManager.setStatusBarTintResource(R.color.top_bg_color);这一步的颜色值(即把你的状态栏颜色与你的标题栏颜色保持一致)要写在color.xml中去,如果用Color.praseColor则会报错。
你好哦,iOS之所以会采用16进制也就是RGB中数字 作为颜色,完全是为了国际化哦。众所周知,颜色有好多种,红花蓝绿...这么多的颜色如果要表示的话,为了使表示更简单,所以就使用了标准的16进制。当然各大开发语言都是采用这个作为颜色的表示形式。最后也希望你能采纳谢谢!