2016-01-28 166 views
0

在我的表格單元格中,我有不同的控件,如ImageView,Label,Buttons。表格單元格中的ImageView突出顯示

在該ImageView是用於UserProfile圖像。當用戶點擊ProfileImage時,必須突出顯示。

對於我使用下面的代碼

- (IBAction)UserImageClick:(id)sender{ 
    UITapGestureRecognizer *tapRecognizer = (UITapGestureRecognizer *)sender; 
    NSString *strUserID,*strUsername, *strUserProfileImage; 
    NSDictionary *dictionary = [self.allPostArray objectAtIndex:[tapRecognizer.view tag]]; 
    strUserID = [dictionary valueForKey:@"user_id"]; 
    strUsername= [dictionary valueForKey:@"username"]; 
    strUserProfileImage = [dictionary valueForKey:@"userprofileimage"]; 
    [sender setHighlighted:YES animated:YES]; 
} 

有什麼辦法來突出發件人和動畫呢?這裏發件人是一個ImageView。

+0

我認爲這可能會幫助你,http://stackoverflow.com/questions/1 1926729/change-uibutton-border-color-on-highlight – leo

+0

僅供參考 - 不要使用'valueForKey:'來獲取字典值,除非您特別需要使用KVC。使用'objectForKey:'。 – rmaddy

+0

好rmaddy我會改變它 –

回答

0

您需要更改UIImageView圖層邊框的顏色。作爲UIImageView繼承自UIView,它有一個.layer屬性,它是一個CALayer。事情是這樣的......

UIImageView *imageView = (UIImageView *)sender; 

UIColor *borderColor = [UIColor greenColor]; 
[imageView.layer setBorderColor:borderColor.CGColor]; 
[imageView.layer setBorderWidth:3.0]; 

鏈接到蘋果文檔爲CALayer

0

試試這個代碼: 它爲我工作

_image.userInteractionEnabled = YES;

_image.tag = 1;

_image.layer.opacity = 0.80;

- (無效)的touchesBegan:(NSSet中*)觸摸withEvent:方法(的UIEvent *)事件

{

UITouch *touch = [[event allTouches] anyObject]; 

[super touchesBegan:touches withEvent:event]; 

if ([touch view] == [_image viewWithTag:1]) 

{ 

    _image.backgroundColor=[UIColor blueColor]; 

    _image.layer.opacity=3; 

} 

}

- (無效)touchesEnded:(NSSet中*)觸摸with事件:(UIEvent *)事件 {

UITouch *touch = [[event allTouches] anyObject]; 

[super touchesBegan:touches withEvent:event]; 

if ([touch view] == [_image viewWithTag:1]) 

{  
    _image.backgroundColor=[UIColor blueColor]; 

    _image.layer.opacity=0.80; 

} 
+0

我認爲你的解決方案可能會工作,我會檢查它,並得到你 –

+0

它會爲你工作.. – parthiban

相關問題