Coder Social home page Coder Social logo

crabmen / cmpagetitleview Goto Github PK

View Code? Open in Web Editor NEW
309.0 9.0 35.0 536 KB

✍️一分钟集成类似抖音,新浪微博,腾讯视频,网易新闻,今日头条等常见的标题栏样式,api灵活易扩展,支持Cocoapods和Masonry布局,支持ChildController的完整生命周期

License: MIT License

Objective-C 98.98% Ruby 0.68% C 0.34%
ios objective-c titlebar pageview cocoapods masonry childcontroller pagingview segement viewpager

cmpagetitleview's Introduction

Hi there, I'm CrabMan! 👋

  • 🌱 15年工作至今,有独立开发以及团队开发经验以及2-8人的移动端团队管理经验,目前在一家区块链交易所公司任职,负责iOS端App的开发工作(目前任职公司项目技术栈:OC,Flutter,RN)。
  • 🔭 技术栈:OC,Swift,React-Native,WXJS,Flutter ...

Languages and Tools

cmpagetitleview's People

Contributors

crabmen avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

cmpagetitleview's Issues

demo中 02-02rightView 样式有bug

运行demo ,设置了rightView 标签数量设置为前六个,然后页面一直右滑,顶部的titleView不能滚动到最后一个标签了,被rightView挡住了。

CMPageContentCell实现有bug

CMPageContentCell调用setCm_contentView方法时,需要先把上一个_cm_contentView移除,如下:

  • (void)setCm_contentView:(UIView *)cm_contentView {

    if (_cm_contentView.superview) {
    [_cm_contentView removeFromSuperview];
    }

    ...
    }

考虑到Cell是复用的,如果cm_contentView对应的ViewController没有dealloc的话,就会出现内容的重叠

能否支持标题是文字与图片混搭的样式

首先,感谢作者写出这么一个强大的开源库,很方便使用,👍

另外提一个需求【偷笑】:
类似于腾讯视频一样,切换到动漫之后,显示的是一张图片,并且背景支持设置【背景色,或者图片填充】

设置选中的tab

大佬,这个能设置当前选中哪个tab吗?或者懒加载有没有开关设置,我需要全部tab都走一遍初始化

使用xib时页面错乱

感谢开源, 框架写的很好, 也很易用
但是我遇到一个问题
使用场景大致如下

只创建两个 viewController, 每个都使用xib, xib中控件加了约束
问题就出现在这里
childViewControllers 这个数组中的 第一个 controller 页面会偏下(两个页面顶部使用的是同样的约束距离)一个导航的高度
我之所以说第一个,是因为测试过两个以上,或者调换距离,都是第一个页面偏下

可以解决下吗

这个方法获取标题可能为NSNull

/* Return an array containing the results of invoking -valueForKey: on each of the receiver's elements. The returned array will contain NSNull elements for each instance of -valueForKey: returning nil.
*/

  • (id)valueForKey:(NSString *)key;

大佬 发现了一个适配问题能帮忙看一下么

  • (void)setCm_x:(CGFloat)cm_x{
    CGRect frame = self.frame;
    frame.origin.x = cm_x;
    self.frame = frame;//崩在了这一行,frame CGRect (origin = (x = NaN, y = 52.620689655172413), size = (width = 1.7976931348623157E+308, height = 2))
    }

Terminating app due to uncaught exception 'CALayerInvalidGeometry', reason: 'CALayer position contains NaN: [nan 53.6207]'

设备:iphone6s plus 系统版本:9.3.5
这台手机上会有问题 iOS12、13的都没问题

CMPageContentView.m这个文件里的这个方法

  • (void)scrollViewDidScroll:(UIScrollView *)scrollView {
    if (_isAniming || self.config.cm_childControllers.count == 0) return;

    if (self.cm_delegate) {

      CGFloat progress = scrollView.contentOffset.x / self.cm_width - floor(scrollView.contentOffset.x / self.cm_width);//应该是这一行的计算出错了
      NSUInteger leftIndex = floor(scrollView.contentOffset.x / self.cm_width);
      NSUInteger rightIndex = leftIndex + 1;
      [self.cm_delegate cm_pageContentViewDidScrollProgress:progress LeftIndex:leftIndex RightIndex:rightIndex];
    

    }
    }

To do:子控制器的生命周期不可控!

issue:子控制器的生命周期不可控,例如当从1滑到2时,2如果已经加载过就不会走viewWillAppear,1也不会走viewWillDisappear,因此你需要增加一个子控制器遵循的协议来手动维护他们的生命周期。

关于cm_titleMargin属性

当设置contentmode为左对齐或者右对齐的时候,设置cm_titleMargin的值会造成最左边或者最右边多一段距离,效果非常不好 ,如果只想设置标题之间间距,如何达到这种效果

显示上有bug

下载demo
随便一个模式 在切换上面的菜单选择器时会导致下面的tableview高度变化。(通过点击和左右滑动引起不一样的高度变化)

下划线替换Image

您好,点击标题,下划线的滑动能替换成自定为的image吗?
比如下划线替换为 一个口向上的椭圆。

大佬,可以支持一下屏幕方向切换吗?

见上图,iPad 旋转下底部没有自适应高度,设置下面的后直接不显示视图
self.pageView.autoresizingMask = UIViewAutoresizingFlexibleWidth + UIViewAutoresizingFlexibleHeight;
,怎么解决呢,谢谢

关于默认背景和选中背景的设置

作者你好 请问如何设置在默认状态的遮罩颜色, 如果选中和未选中都有遮罩。能不能设置个自定义接口,可以手动像传递tabelViewCell的方式传递当前的选中View和未选中的View

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.