请问这个app的导航栏如何实现,请高手给点思路。多谢! 请问这个app的导航栏如何实现,请高手给点思路。多谢!文字是镂空的貌似很难弄 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 它可能是直接把一个View添加到NavigationController的view上了 我又看了看应该是个UIScrollView视图,上面应该不是NavigationController,是一个普通的View,关键是上面的文字镂空效果是怎么做到的。 楼主应该主要是想知道,顶部的那个view中的文字如何透明而露出底部的背景吧。你可以自定义一个uiview ,在这个自定义view的drawRect 中来绘制。两个层叠加设置blendMode. 使用kCGBlendModeClear 这个值可以在两上层叠加时“擦除”底部层的内容 原来是这样,我写了一个demo:其实很简单,我是通过重写UILabel的drawTextInRect方法来实现的:- (void)drawTextInRect:(CGRect)rect { CGSize shadowOffset = self.shadowOffset; CGContextRef c = UIGraphicsGetCurrentContext(); CGContextSetLineWidth(c, 1); CGContextSetLineJoin(c, kCGLineJoinRound); CGContextSetTextDrawingMode(c, kCGTextStroke); self.textColor = [UIColor whiteColor]; [super drawTextInRect:rect]; self.shadowOffset = shadowOffset;}关键点是kCGTextStroke blendMode很难达到这种效果,因为你一个层画完整的Text,另一个画字号小一点的Text,这样才能达到擦出重叠区域的效果,但是字体大小不同,其间距也不同,很难刚好把一个小号的字体嵌入到大号的字体中心去 我要忏悔,昨天光把注意力放在文字镂空上了其实这个效果和镂空没有关系,还是得用blend 蓝色和橙色加载同样地文字样式,只是颜色不一样,位置一致。蓝色显示左边部分,橙色显示右边部分,使用clipstobound YES blendMode很难达到这种效果,因为你一个层画完整的Text,另一个画字号小一点的Text,这样才能达到擦出重叠区域的效果,但是字体大小不同,其间距也不同,很难刚好把一个小号的字体嵌入到大号的字体中心去字号大小不同你都看出来了,你是说左边及右边的字体大小不同吗?绘制的时候我可以分开来绘制吧。不知道你有什么更好的方案呢 blendMode很难达到这种效果,因为你一个层画完整的Text,另一个画字号小一点的Text,这样才能达到擦出重叠区域的效果,但是字体大小不同,其间距也不同,很难刚好把一个小号的字体嵌入到大号的字体中心去字号大小不同你都看出来了,你是说左边及右边的字体大小不同吗?绘制的时候我可以分开来绘制吧。不知道你有什么更好的方案呢你好,是整个导航栏都要自己绘制吗?新手没经验,之前没做个这种自定义的控件,都是使用系统自带的。请多指教。 看看这个:https://github.com/robinsenior/RSMaskedLabel 做个navbar的图片 文字是透明的不就好了 新手求教UITableView的问题 【求助】Ios 用storyboard搭建界面,但不想用Sugue连接,想用别的方法切界面 怎么释放NSArray里面的NSData? 问一个sqlite3语句 UIPageViewController页面加个按钮,如何点击后进入下一页,上一页 mac下如何实现串口通讯 音频队列 MPMoviePlayerController 全屏横屏设置 NSURLSessionDownload下载的文件在沙盒中找不到了 iOS 怎样实现这样的效果 UIAlertController 中的message中的内容如何设置文本居左显示 触屏点餐系统,用什么语言开发?
CGSize shadowOffset = self.shadowOffset;
CGContextRef c = UIGraphicsGetCurrentContext();
CGContextSetLineWidth(c, 1);
CGContextSetLineJoin(c, kCGLineJoinRound);
CGContextSetTextDrawingMode(c, kCGTextStroke);
self.textColor = [UIColor whiteColor];
[super drawTextInRect:rect]; self.shadowOffset = shadowOffset;
}关键点是kCGTextStroke
蓝色和橙色加载同样地文字样式,只是颜色不一样,位置一致。
蓝色显示左边部分,橙色显示右边部分,使用clipstobound YES
字号大小不同你都看出来了,你是说左边及右边的字体大小不同吗?绘制的时候我可以分开来绘制吧。不知道你有什么更好的方案呢
字号大小不同你都看出来了,你是说左边及右边的字体大小不同吗?绘制的时候我可以分开来绘制吧。不知道你有什么更好的方案呢你好,是整个导航栏都要自己绘制吗?新手没经验,之前没做个这种自定义的控件,都是使用系统自带的。请多指教。