小编Ama*_*ulo的帖子

如何在iPhone上扩展键盘渐变?

我看到很少有应用程序在扩展键盘,但我想知道他们是如何做到的.

这是两个例子.

Textastic& Prompt

现在我知道我可以将inputAccessoryView添加到UITextView,但它仍然有一条细线,将键盘与UIToolbar分开,就像在下面的图像上一样.

在此输入图像描述

他们是怎么做到的?扩展持有键盘或其他方式的UIWindow?

更新1回答:

所以我使用了Tyraz所写的解决方案.

  1. 子类UIToolbar
  2. 而不是图像我使用UIView的背景颜色与键盘渐变的精加工颜色相同,并使用UIViewAutoResizingMaskFlexibleWidth使其在旋转时覆盖键盘,高度为3像素

这是子类UIToolbar的代码

- (void)didMoveToSuperview {

    [self.separatorHideView removeFromSuperview];

    CGRect seperatorRect = CGRectMake(self.frame.origin.x,
                                      self.frame.size.height,
                                      self.frame.size.width,
                                      3.0);

    self.separatorHideView = [[UIView alloc]];
    self.separatorHideView.backgroundColor = [UIColor colorWithRed:0.569 green:0.600 blue:0.643 alpha:1.000];
    self.separatorHideView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    [self addSubview:self.separatorHideView];
}
Run Code Online (Sandbox Code Playgroud)

更新2:这是代码我如何将它添加到UITextView以及我用于色调的颜色.

我正在使用以下代码将它添加到viewDidLoad中的UITextView

    CustomToolbar *accessoryToolbar = [[CustomToolbar alloc] initWithFrame:CGRectMake(0, 0, 320, 38)];
    accessoryToolbar.tintColor = [UIColor colorWithRed:0.569 green:0.600 blue:0.643 alpha:1.000];
    editor.inputAccessoryView = accessoryToolbar;  
Run Code Online (Sandbox Code Playgroud)

这就是解决方案应用于它的样子

在此输入图像描述

iphone objective-c ios

6
推荐指数
2
解决办法
2110
查看次数

UILabel斜体字体剪辑

我正在尝试解决这个问题,因为在我正在处理的应用程序中我有很多字体,所以当用户更改字体时,动态计算标签的大小.

我有的问题是,如果字体是斜体,UILabel会被剪裁在最后:如下图所示:

UILabel剪辑示例

这是我到目前为止所尝试的:

  • 借助CoreText和.计算宽度 CGSize CTFramesetterSuggestFrameSizeWithConstraints ( CTFramesetterRef framesetter, CFRange stringRange, CFDictionaryRef frameAttributes, CGSize constraints, CFRange *fitRange );
  • 借助NSAttributedString和.计算宽度 - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context
  • 借助NSString和.计算宽度 - (CGSize)sizeWithAttributes:(NSDictionary<NSString *,id> *)attrs
  • 使用temp UITextView和sizeThatFits´ andfitToSize`

由于应用程序中有很多字体,我需要动态设置标签的宽度,因此UILabel的子类化和添加更多的点drawFrameInRect是不起作用的.

这是Github上的示例代码.

任何帮助/建议表示赞赏.

objective-c uilabel uifont ios

6
推荐指数
1
解决办法
1331
查看次数

使用自定义字体计算NSString的高度

我正试图解决这个问题一个星期了,我已经测试了很多想法,但我无法正确计算NSString自定义字体的大小.

我有UITextView一个文本和一个UIView我在其中绘制行的行号UITextView.问题是,NSString UIKit在计算尺寸时,Additions忽略了标签宽度NSString.

在图片中你可以清楚地看到第7行,它在渲染时是换行符UITextView,之后所有行都受到影响.

模拟器截图

我使用的字体是Adobe Source Code Pro.

我尝试过NSString UIKitAdditions的所有方法都没有成功.

sizeWithFont

sizeWithFont:forWidth:lineBreakMode:

sizeWithFont:minFontSize:actualFontSize:forWidth:lineBreakMode:
Run Code Online (Sandbox Code Playgroud)

我也尝试用四个空格替换字符串中的所有选项卡,这有帮助,但它仍然不能一直工作.对于某些线路它有帮助,但对某些线路没有帮助.

有关如何NSString正确计算身高的建议吗?CoreText也许?

一个小笔记.我试图通过使用UITextInput协议中的几何命中测试方法解决这个问题,当它们正在工作时,cpu加载在模拟器上是100%,所以在真实设备上它会杀死应用程序,特别是如果我加载大约1500+的文件代码行.

这里是我用于LineNumbersView.m的代码的要点.

objective-c ios

5
推荐指数
1
解决办法
434
查看次数

标签 统计

ios ×3

objective-c ×3

iphone ×1

uifont ×1

uilabel ×1