UITextField占位符字符串在ios7中始终保持顶部对齐

海娜

我有UITextField类的子类,并做了下面的代码

- (void)drawPlaceholderInRect:(CGRect)rect
{

    [self.placeHolderTextColor setFill];
    [self.placeholder drawInRect:rect
                        withFont:self.placeHolderFont
                   lineBreakMode:NSLineBreakByTruncatingTail
                       alignment:NSTextAlignmentLeft];

}

我也写了self.contentVerticalAlignment = UIControlContentVerticalAlignmentTop;一行代码

此占位符文本在ios6中正确居中对齐,但在ios7中不是居中对齐。

尽管我键入的文本居中显示,但仅占位符字符串出现问题。

我尝试使用xib设置占位符字符串。在XIB中它显示正确,但是当我运行代码时,文本字段占位符是顶部对齐的。

任何解决方法?

瓦多夫的答案对我有用。这仍然是完整的实施方案,可能会帮助遇到相同问题的任何人。

drawInRect方法已在ios7中弃用,并且drawInRectWithAttributes可以正常工作

- (void)drawPlaceholderInRect:(CGRect)rect
{

    [self.placeHolderTextColor setFill];

    CGRect placeholderRect = CGRectMake(rect.origin.x, (rect.size.height- self.placeHolderFont.pointSize)/2 - 2, rect.size.width, self.placeHolderFont.pointSize);
    rect = placeholderRect;

    if(iOS7) {

        NSMutableParagraphStyle* style = [[NSMutableParagraphStyle alloc] init];
        style.lineBreakMode = NSLineBreakByTruncatingTail;
        style.alignment = self.placeHolderTextAlignment;


        NSDictionary *attr = [NSDictionary dictionaryWithObjectsAndKeys:style,NSParagraphStyleAttributeName, self.placeHolderFont, NSFontAttributeName, self.placeHolderTextColor, NSForegroundColorAttributeName, nil];

        [self.placeholder drawInRect:rect withAttributes:attr];


    }
    else {
        [self.placeholder drawInRect:rect
                            withFont:self.placeHolderFont
                       lineBreakMode:NSLineBreakByTruncatingTail
                           alignment:self.placeHolderTextAlignment];
    }

}
瓦多夫

在iOS7中,drawInRect方法的行为似乎有所不同,您可以尝试添加以下行并将其用作绘制的矩形。它也向下兼容iOS7之前的版本。

  CGRect placeholderRect = CGRectMake(rect.origin.x, (rect.size.height- self.font.pointSize)/2, rect.size.width, self.font.pointSize);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

替换字符串中的占位符

来自分类Dev

IOS7中的UITextView需要了解占位符

来自分类Dev

iOS7上的自定义UITextView占位符对齐

来自分类Dev

如何使菜单始终保持在顶部

来自分类Dev

Swift(iOS)中具有占位符和复数支持的动态字符串

来自分类Dev

ValueError:字符串中的无效占位符

来自分类Dev

更改后,NSSearchField中的中心占位符字符串

来自分类Dev

替换字符串中的多个占位符

来自分类Dev

用python中的占位符替换字符串

来自分类Dev

树枝:用include替换字符串中的占位符

来自分类Dev

在SQL字符串中替换时间戳占位符

来自分类Dev

更改后,NSSearchField中的中心占位符字符串

来自分类Dev

UITextField占位符-具有不同颜色和字体的字符串?

来自分类Dev

强制将路由占位符始终视为查询字符串参数

来自分类Dev

iOS7中的UITextView剪辑文本字符串的最后一行

来自分类Dev

设置NSTextView的占位符字符串

来自分类Dev

从字符串中提取的占位符

来自分类Dev

如何枚举字符串占位符?

来自分类Dev

用占位符创建字符串

来自分类Dev

javascript:匹配字符串与占位符

来自分类Dev

通过模板占位符在字符串中查找字符串

来自分类Dev

在iOS7中点击UITextField

来自分类Dev

UITextField占位符对齐滚动麻烦

来自分类Dev

UITextField,在iOS中的文本后设置占位符

来自分类Dev

如何在 ios UITextfield 中显示完整的占位符文本?

来自分类Dev

iOS 7中的NSDateFormatter字符串

来自分类Dev

Xcode5和iOS7:Localizable.strings中的字符串尾部空格不再起作用

来自分类Dev

如何在SQL中删除此字符串中的多余占位符?

来自分类Dev

如何在 C 中的字符串中设置变量占位符

Related 相关文章

热门标签

归档