ios 星星評分(支援點選和滑動)
思路:ios 中 touchesBegan和touchesMoved兩個方法可以獲取到UIView上的點選的座標和滑動的座標,根據座標,位於X座標左邊的imageview設定為“button_star_red”,右邊的設定為“button_star_red”。
第一步:在UIViewController上新增一個UIView(兩種方式,直接拖拽或者在”.m”檔案程式碼建立,這裡直接拖拽)命名為:myview,width 為星星寬度的6倍(總共5顆星星,確保可以0分),heigh為星星的高度
1 |
@property
(weak, nonatomic) IBOutlet UIView *myview; |
第二步:在myview上新增imageview,將星星初始化為“button_star_white”,並且按順序加入到陣列中,便於後期遍歷改變星星顏色,程式碼如下:
1 2 3 4 5 6 7 |
UIImageView
*imageView;
for
( int
i = 0; i < 5; i++) {
imageView
= [[UIImageView alloc] initWithImage:[UIImage imageNamed:@ "button_star_white" ]];
imageView.frame
= CGRectMake(_myview.bounds.origin.x+((i+1)*24), _myview.bounds.origin.y, 24, 24);
[_myview
addSubview:imageView];
[_allStar
addObject:imageView];
}
|
第三步:獲取點選活著滑動的座標,根據座標,將座標X以左的星星置為“button_star_white”(星星的寬和高都是24,)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#pragma
mark - 點選的座標
-
( void )touchesBegan:(NSSet
*)touches withEvent:(UIEvent *)event
{
UITouch
*touch = [touches anyObject];
CGPoint
touchPoint = [touch locationInView:_myview];
UIImageView
*im ;
for (
|