iOS涓缃渾瑙掔殑鍑犵鏂规硶绀轰緥

2020-01-18 21:05:57王振洲

鍓嶈█

鍦嗚锛圧ounderCorner锛夋槸涓€绉嶅緢甯歌鐨勮鍥炬晥鏋滐紝鐩告瘮浜庣洿瑙掞紝瀹冩洿鍔犳煍鍜屼紭缇庯紝鏄撲簬鎺ュ彈銆備絾寰堝浜哄苟涓嶆竻妤氬浣曡缃渾瑙掔殑姝g‘鏂瑰紡鍜屽師鐞嗐€傝缃渾瑙掍細甯︽潵涓€瀹氱殑鎬ц兘鎹熻€楋紝濡備綍鎻愰珮鎬ц兘鏄彟涓€涓渶瑕侀噸鐐硅璁虹殑璇濋銆傛垜鏌ラ槄浜嗕竴浜涚幇鏈夌殑璧勬枡锛屾敹鑾疯壇澶氱殑鍚屾椂涔熷彂鐜颁簡涓€浜涜瀵间汉閿欒銆?/p>

1. 浣跨敤layer灞炴€?/strong>


layer.backgroundColor = [UIColor cyanColor].CGColor; // 缁欏浘灞傛坊鍔犺儗鏅壊 
layer.contents = (id)[UIImage imageNamed:@"view_BG.png"].CGImage; // 缁欏浘灞傛坊鍔犺儗鏅浘鐗?
layer.cornerRadius = 8; // 灏嗗浘灞傜殑杈规璁剧疆涓哄渾鑴?
layer.masksToBounds = YES; // 闅愯棌杈圭晫 
layer.borderWidth = 5; // 缁欏浘灞傛坊鍔犱竴涓湁鑹茶竟妗?
layer.borderColor = [UIColor colorWithRed:0.52 green:0.09 blue:0.07 alpha:1].CGColor; 
layer.shadowOffset = CGSizeMake(0, 3); // 璁剧疆闃村奖鐨勫亸绉婚噺 
layer.shadowRadius = 10.0; // 璁剧疆闃村奖鐨勫崐寰?
layer.shadowColor = [UIColor blackColor].CGColor; // 璁剧疆闃村奖鐨勯鑹蹭负榛戣壊 
layer.shadowOpacity = 0.9; // 璁剧疆闃村奖鐨勪笉閫忔槑搴?/pre>

2. 浣跨敤缁樺浘璁剧疆鍦嗚


/** 璁剧疆鍦嗗舰鍥剧墖(鏀惧埌鍒嗙被涓娇鐢? */
- (UIImage *)cutCircleImage { 
  UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0); // 鑾峰彇涓婁笅鏂?
  CGContextRef ctr = UIGraphicsGetCurrentContext(); // 璁剧疆鍦嗗舰 
  CGRect rect = CGRectMake(0, 0, self.size.width, self.size.height); 
  CGContextAddEllipseInRect(ctr, rect); // 瑁佸壀 
  CGContextClip(ctr); // 灏嗗浘鐗囩敾涓婂幓 
  [self drawInRect:rect]; 
  UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 
  UIGraphicsEndImageContext(); 
  return image;
}

3. 閫氳繃鍙︿竴寮爉ask鍥惧垱寤烘柊鍥?/strong>

棣栧厛闇€瑕佷竴寮爉ask鍥撅紝鐒跺悗灏嗚繖寮爉ask鍥惧拰鍘熷浘鍚堟垚锛屽緱鍒板甫鍦嗚鐨勬柊鍥俱€傛晥鐜囧拰鏂规硶涓€绫讳技锛屽悎鎴愭柊鍥剧瓑鍚屼簬鍦╫ff-screen浣滃浘銆傝鏂规硶鐨勪紭鐐规槸鍙互涓嶅眬闄愪簬鍦嗚锛屽叏鍑璵ask鍥炬帶鍒躲€?/p>

灏忕粨

濡傛灉瑕佹晥鐜囷紙渚嬪瑕佹彁楂榯able view鐨勬粴鍔ㄥ抚鏁帮級锛屽氨澶氱敤鏂规硶浜屻€傝鏂逛究锛岃嚜鐒舵槸鏂规硶涓€銆傚鏋滈渶瑕佺殑鐗规畩褰㈢姸UIBezierPath瀵硅薄鏃犳硶鏋勬垚锛屽垯鑰冭檻鏂规硶涓夈€?/p>

鎬荤粨

浠ヤ笂灏辨槸杩欑瘒鏂囩珷鐨勫叏閮ㄥ唴瀹逛簡锛屽笇鏈涙湰鏂囩殑鍐呭瀵瑰悇浣峣OS寮€鍙戣€呬滑鑳藉甫鏉ヤ竴瀹氱殑甯姪锛屽鏋滄湁鐤戦棶澶у鍙互鐣欒█浜ゆ祦銆傝阿璋㈠ぇ瀹跺ASPKU婧愮爜搴撶殑鏀寔銆?/p>