您的位置:首页 > 其它

颜色创建图片、Button的custom、system区别 selected、highlighted区别;

2017-07-19 14:38 337 查看
custom、system区别

selected、highlighted区别:

(1)UIControlStateHighlighted 多用于初始化 button 时

例如:设置它被按下时的高亮图片或背景(松开就变为 UIControlStateNormal 状态下的外观)

这些 UIControlState 是针对所有的 UIControl 定义的,但是实际上不是每个 UIControl 都会经历到这些个 State基本的 State 变化过程如下

1.什么都没干的时候:Normal

2.当你的手指按下去,还没放的时候:Highlighted

3.当手指放开的时候:如果这个 UIControl 有 Selected 状态的话,就会变成: Selected

// UIControlStateNormal:默认状态,一开始按钮的显示

// UIControlStateHighlighted:当一个操作进入这个控件的范围内,变为此状态;松开或者离开范围外,此状态消失

// UIControlStateSelected:大多数没有什么反应,有的会有(UISegmentedControl)

(2) custom按钮没有高亮状态,system有高亮显示。

(3) 而 UIControlStateSelected 多用于被按下后需要持续不变的外观而又区别与 UIControlStateNormal 外观的情况(需要设置 button.selected = YES)以及其他一些事件的处理。

例如:你需要做一个 checkbox,当用户选择时需要打勾,再点击时取消打勾。

两种状态下不同的显示:

(1)custom类型,default和highlighted两种状态下,设置各自的图片即可

(2)画图,用颜色创建图片

-(UIImage*) createImageWithColor:(UIColor*) color
{
+ (UIImage *)imageWithColor:(UIColor *)color {
CGRect rect = CGRectMake(0.0f, 0.0f, 1.0f, 1.0f); //宽高 1.0只要有值就够了
UIGraphicsBeginImageContext(rect.size); //在这个范围内开启一段上下文
CGContextRef context = UIGraphicsGetCurrentContext();

CGContextSetFillColorWithColor(context, [color CGColor]);//在这段上下文中获取到颜色UIColor
CGContextFillRect(context, rect);//用这个颜色填充这个上下文

UIImage *image = UIGraphicsGetImageFromCurrentImageContext();//从这段上下文中获取Image属性,,,结束
UIGraphicsEndImageContext();

return image;
}
/*
圆角度

4000
UIBezierPath path = UIBezierPath.FromRoundedRect (rect, UIRectCorner.AllCorners,
new CGSize (6, 6));
context.AddPath (path.CGPath);
context.Clip ();
context.DrawPath (CGPathDrawingMode.FillStroke);
*/
return theImage;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: