`
fanfanlovey
  • 浏览: 73118 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论
阅读更多
最近在学习Autolayout, 伴随着项目的开发,遇到了许多应用场景,下面把遇到的几个场景描述下

1.设定多个视图在宽度上保持2:1
场景是这样的,我页面中在横向放置个视图,左右放置,高度固定,其中一个视图屏幕的2/3,另一个视图占屏幕的1/3。设置步骤如下

1、拖动2个view到屏幕中,取名为view1 和view2

2、设置view1和view2的约束
    添加view1约束为left=0;top=64;height=200;
    添加view2约束为trailing=0;top=64;hegith =200;
    添加view1和view2水平距离约束为0
    添加view1和view2 withsequal约束 设置约束的属性值multiplier 为1:2
约束截图如下


3.参照例子中“固定横框比1:2”


2.设置视图的宽度、高度为固定比例
场景是这样的,APP首页要做一个轮播广告。广告的图片比例是固定的2:1,由于现在苹果屏幕宽度不在单一,所以没法通过width和height来设置。这个时候可以通过设置视图的XX属性来控制。下面介绍步骤:
1、拖动自定义视图到主视图;
  
2、设定自定义视图约束;
   约束为left=0;right=0;top=0;aspect radtio=2:1。整体约束截图如下

3.参照例子中“页面视图2:1”


3.旋转视图

参照例子中“旋转视图”


4.自定义tableView
应用场景,tableCell的内容是自定义的,其中包含2个View,这2个view是自定义的。实现操作如下
1、首先按部就班,拖动tableView,创建约束
2、创建一个动态Cell,其中拖动2个View,把class设为你自定义的类GoodsView
3、创建自定义view,取名GoodsView,这里需要注意的是在xib中设置GoodsView的File's Owner的Classes为GoodsView,此时,如果按照通常设置View的Class为GoodsView,则tableCell在初始化的时候只会创建GoodsView对象,但是里面的属性是不能初始化的
4、GoodsView中实现自定义代码
- (id)initWithCoder:(NSCoder *)aDecoder
{
    if (self = [super initWithCoder:aDecoder]) {
        UIView *containerView = [[[UINib nibWithNibName:@"GoodsView" bundle:nil] instantiateWithOwner:self options:nil] objectAtIndex:0];
        CGRect newFrame = CGRectMake(0, 0, self.frame.size.width, self.frame.size.height);
        containerView.frame = newFrame;
        [self addSubview:containerView];
    }
    return self;
}


具体参照例子中“自定义tableView”

5.自定义tableView高度
应用场景是这样的。有一个tableView,其中的cell高度是不不固定的,需要根据填充的内容来进行高度计算。
1、设置UILabel的lines为0;
2、选中UILabel的Explicit
3、设置label的约束

4、通过代码动态计算高度
- (CGFloat)heightForAddressListCellAtIndexPath:(NSIndexPath *)indexPath
{
    static CustomHeightCell *cell = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        cell = [self.mainTableView dequeueReusableCellWithIdentifier:@"CustomHeightCell"];
    });
    AddressInfo *info = [self.addressArray objectAtIndex:indexPath.row];
    cell.nameLabel.text = info.receiver;
    cell.mobileLabel.text = info.tel;
    cell.detailLabel.text = info.address;

    return [self calculateHeightForCell:cell];
}

- (CGFloat)calculateHeightForCell:(UITableViewCell *)sizingCell
{
    sizingCell.bounds = CGRectMake(0.0f, 0.0f, CGRectGetWidth(self.mainTableView.bounds), 0.0f);
    [sizingCell layoutIfNeeded];
    
    CGSize size = [sizingCell.contentView systemLayoutSizeFittingSize:UILayoutFittingCompressedSize];
    return size.height ;
}

参照例子中“自定义tableView高度,该例子也实现了通过代码控制Autolayout动画效果”

6.UIScrollview设置约束
在UIScrollview中添加一个view1跟在View中添加view1存在一些不同的地方
比如在view中添加view1 只需要下列约束即可
top=64; leading=50;widht=100;height=100;
比如在UIScrollview中添加view1 只需要下列约束即可
top=64; leading=50;widht=100;height=100; bottom=10; 其中bottom约束的优先级设置为250
为什么会这样呢,因为在UIScrollview中有个属性叫做contentSize,如果此时不设置bottom约束,那么UIScrollview将不知道自己的contentSize重的height有多大。设置优先级为250 是因为。此时view1的高度约束和bottom约束存在冲突,设置优先级为250是表示优先支持高度约束。在我们日常开发中,只需要设置bottom约束,如果用不到该约束,也就不需要管他了
详细参考例子UIScrollview设置
  • 大小: 498.4 KB
  • 大小: 200.6 KB
  • 大小: 277.7 KB
  • 大小: 270 KB
  • 大小: 235.7 KB
分享到:
评论

相关推荐

    IOS源码——IOS可扩展底部TablBar.7z

    本资源“IOS源码——IOS可扩展底部TablBar.7z”提供了一个名为“brendandixon-ExpandableTabBar-27ac638”的开源项目,旨在实现一个可扩展的TabBar,这将帮助开发者创建更丰富、更具交互性的用户界面。下面,我们将...

    IOS源码——自定义Tab Bar的文字、颜色和图片加箭头.zip

    在iOS开发中,自定义Tab Bar是常见的需求,它能够帮助开发者实现更加个性化和独特的用户界面...通过深入学习和理解`CustomTabBar`的实现,我们可以更好地控制Tab Bar的外观和行为,从而创建出更具吸引力的iOS应用界面。

    IOS源码——自定义UITableViewCell。实现各种样式的表格输入界面.zip

    这个压缩包“IOS源码——自定义UITableViewCell。实现各种样式的表格输入界面.zip”显然包含了一个示例项目,它演示了如何为UITableView创建自定义的单元格以实现各种输入界面样式。下面我们将深入探讨这一主题。 ...

    IOS开发——图书商城APP(含项目源码及实验报告)

    《iOS开发——图书商城APP详解》 iOS开发领域中,构建一个完整的图书商城APP是一项具有挑战性的任务。在这个项目中,我们使用了苹果的Swift语言,它以其强大的功能和简洁的语法深受开发者喜爱。本项目涵盖了用户...

    IOS源码——[code4app.com]高仿新百度贴吧列表效果_10802.zip

    这个名为"IOS源码——[code4app.com]高仿新百度贴吧列表效果_10802.zip"的压缩包提供了一个高仿百度贴吧列表效果的示例项目,这对于学习如何在iOS应用中创建类似论坛或社区的滚动列表具有极高的参考价值。...

    IOS源码——高仿新百度贴吧列表效果_10802.7z

    这篇文章将深入探讨在iOS开发中实现“高仿新百度贴吧列表效果”的技术细节。...源码"baiduTieba"提供了实际的实现参考,开发者可以通过学习和调试这个示例,提升自己在iOS界面设计和开发方面的能力。

    ios新手开发——toast提示和旋转图片加载框 - iOS知识库1

    iOS新手开发——toast提示和旋转图片加载框 本资源主要介绍了iOS开发中 toast 提示和旋转图片加载框的实现方法。文章首先介绍了 Toast 提示的基础控件的封装,继承自UILabel,添加了屏幕宽高、圆角、时间等属性,并...

    IOS应用源码——PageControl.rar

    【标题】"IOS应用源码——PageControl.rar" 提供的是一个iOS应用...总之,这份"IOS应用源码——PageControl.rar"为iOS开发者提供了一个实践和学习的机会,通过实际的代码实现,加深对PageControl的理解,提升开发能力。

    IOS应用源码——天气预报.rar

    "IOS应用源码——天气预报.rar"提供了一个完整的iOS天气预报应用的源代码,这为开发者提供了研究和学习iOS应用开发,特别是与天气相关的API集成、UI设计以及数据处理等方面知识的机会。 首先,iOS应用开发主要使用...

    iOS基础——通过案例学知识之LaunchScreen、APPIcon、StatusBar、UIScrollView、UIPageControl

    另外,配合AutoLayout,可以实现动态内容的布局。 最后,我们讨论**UIPageControl**,它通常与UIScrollView一起使用,用于指示当前页面和总页面数。在滑动浏览多个页面的内容时,如照片或文章,UIPageControl提供了...

    IOS应用源码——TransWeb.rar

    1. **iOS应用开发基础**:iOS应用通常使用Swift或Objective-C编写。Swift是苹果在2014年推出的新语言,语法简洁,易于学习;Objective-C是更老的语言,但至今仍广泛使用,尤其是在遗留项目中。了解这两种语言的基本...

    IOS应用源码——Pickers.rar

    1. **Picker组件的使用**:iOS中的UIPickerView或CUIPickerView的创建、配置、数据源和代理方法的实现,包括如何设置选项、处理选择改变等。 2. **自定义Picker**:如果源码包含自定义Picker,那么将涵盖如何通过...

    IOS应用源码——ipad note记事本.zip

    【标题】"IOS应用源码——ipad note...总之,"IOS应用源码——ipad note记事本.zip"为iOS开发者提供了一个实际的案例,有助于深入理解iOS应用开发过程,提升编程技能,以及学习如何创建一个实用的iPad记事本应用。

    IOS应用源码——StackPanel for iOS.rar

    通过学习和分析StackPanel for iOS的源码,开发者可以深入理解iOS应用的界面布局机制,尤其是AutoLayout和自定义视图容器的实现。这对于提升iOS应用的界面设计能力和性能优化技巧都大有裨益。此外,熟悉这样的源码也...

    IOS应用源码——国家拾取器.zip

    【标题】"IOS应用源码——国家拾取器.zip" 提供的是一个iOS应用程序的源代码,这个应用可能被设计用来让用户浏览、选择或获取关于世界各国的信息。在iOS开发中,源码通常包括Objective-C或Swift语言编写的代码,以及...

    IOS应用源码——UMTableViewCell.rar

    【标题】"IOS应用源码——UMTableViewCell.rar"是一个针对iOS平台的开源代码项目,主要包含了一个名为UMTableViewCell的自定义表格视图单元格。在iOS应用开发中,UITableView是展示列表数据的一种常见控件,而...

    IOS应用源码——ToyClock.rar

    《iOS应用源码——ToyClock深度解析》 iOS应用源码——ToyClock,这是一个专为iOS平台设计的源代码项目,旨在帮助开发者深入理解iOS应用的开发流程、编程技巧以及苹果的开发环境Xcode的使用。通过分析这个项目,...

    IOS应用源码——一些iPhone开源项目代码iflickr.zip

    标题中的“iOS应用源码——一些iPhone开源项目代码iflickr.zip”是一个包含iOS应用源码的压缩包,主要针对的是iPhone平台。这个开源项目可能是一个模仿或基于Flickr(一个流行的图片分享平台)的应用程序,让我们有...

Global site tag (gtag.js) - Google Analytics