Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIFont:如何设置删除线动画并匹配字体样式?_Ios_Objective C_Uifont - Fatal编程技术网

Ios UIFont:如何设置删除线动画并匹配字体样式?

Ios UIFont:如何设置删除线动画并匹配字体样式?,ios,objective-c,uifont,Ios,Objective C,Uifont,(a) 如何设置删除线动画?我尝试了以下方法,但不起作用 -(void)strikeThrough { NSNumber *strikeSize = [NSNumber numberWithInt:1]; NSDictionary *strikeThroughAttribute = [NSDictionary dictionaryWithObject:strikeSize forKey:NSStrikethroughStyleAttributeName]; NSAtt

(a) 如何设置删除线动画?我尝试了以下方法,但不起作用

-(void)strikeThrough
{
    NSNumber *strikeSize = [NSNumber numberWithInt:1];

    NSDictionary *strikeThroughAttribute = [NSDictionary dictionaryWithObject:strikeSize forKey:NSStrikethroughStyleAttributeName];

    NSAttributedString* strikeThroughText = [[NSAttributedString alloc] initWithString:_label.text attributes:strikeThroughAttribute];

    _label.attributedText = nil;
    [UIView animateWithDuration:2.0
                     animations:^{ _label.attributedText = strikeThroughText; }
                     completion:^(BOOL finished){ }];
}
(b) 此外,删除线的样式与字体不匹配。例如,我使用粉笔字体,但划线看起来不像粉笔。如何处理


非常感谢您的帮助。

制作动画的一种方法是使用
cattransition

    NSNumber *strikeSize = [NSNumber numberWithInt:1];

    NSDictionary *strikeThroughAttribute = [NSDictionary dictionaryWithObject:strikeSize forKey:NSStrikethroughStyleAttributeName];

    NSAttributedString* strikeThroughText = [[NSAttributedString alloc] initWithString:self.mylabel.text attributes:strikeThroughAttribute];

    self.mylabel.attributedText = nil;
    CATransition *transition = [CATransition new];
    transition.delegate = self;
    transition.type = kCATransitionFromLeft;
    transition.duration = 2.0f;
    self.mylabel.attributedText = strikeThroughText;
    [self.mylabel.layer addAnimation:transition forKey:@"transition"];
至于完成区块

-(void)animationDidStop:(CAAnimation *)anim finished:(BOOL)flag
{
    //Check for CATransition here
}
这是你的第二次点评。该链接简要地为您提供了其他方式来处理您希望的罢工的样子,您不能改变它的字体


希望这能有所帮助。

很有效,谢谢!但它并不完美,因为动画更像是逐渐出现,而不是像我们预期的删除线那样从左到右出现。最好改进一下。:)欢迎光临。我知道。。它会逐渐消失。。我和其他人一起试过,这是最好的。