法定继承纠纷代理词uitextview后怎么用代理

本文将介绍UITextView的三种效果.
本文会使用一些NSAttributedString的属性.
所以, 建议在阅读本篇博文之前, 先阅读
本文所展示的效果只是给大家提供个思路, 一定会有不完美的地方, 同时也希望大家根据自己的需求灵活运用.
此文章由 @春雨 编写. 经 @Scott,@黑子 审核. 若转载此文章,请注明出处和作者
链接地址在应用程序内跳转
Class: UITextView
/** UITextView的编辑状态, 默认YES. */
@property(nonatomic, getter=isEditable) BOOL editable
@property(nonatomic) UIDataDetectorTypes dataDetectorTypes
/** 字典内存储链接文本的属性. */
@property(nonatomic, copy) NSDictionary *linkTextAttributes
/** 询问代理人, 是否可以跳转到指定的链接地址. */
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange
我们在UITextView里面点击链接地址时, 它是跳到浏览器里面的. 如果我们不想跳到浏览器, 想在自己的程序内部跳转显示, 该怎么做呢?
UITextView有一个代理方法是用来链接跳转动作是否执行的. 返回值是BOOL类型, 默认是YES.
* 当我们返回NO时, 它就不会跳转了.
* 在这个代理方法内, 我们执行其他的操作, 让链接地址的内容在程序内显示.
#import "ViewController.h"
#import "WebViewController.h"
/** 签订协议 */
@interface ViewController ()&UITextViewDelegate&
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self layoutTextView];
/** 这个属性是UIViewController的属性, 当有Navicontroller的时候, 会自动向下调整UIScrollView及其子类的坐标位置, 默认为YES, 开启状态. */
/** 如果为YES, TextView里的内容会自动向下移动位置. 可以自己测试一下. */
self.automaticallyAdjustsScrollViewInsets = NO;
- (void)layoutTextView {
/** 第一种链接界面: 地址链接. */
/** 创建UITextView的对象. 在这里我们并不需要textContainer, 设置成nil即可. */
UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(30, 100, 300, 150) textContainer:nil];
textView.text = @"http://blog.csdn.net/sponge_cmz?viewmode=contents";
textView.font = [UIFont systemFontOfSize:20];
textView.layer.borderColor = [UIColor blackColor].CGC
textView.layer.borderWidth = 1;
/** 设置代理人, 我们要实现的效果, 需要用到代理方法. 在上面签订UITextViewDelegate协议. */
textView.delegate =
/** 链接地址能够跳转, textView的编辑状态必须为NO, 否则与普通文本无异. */
textView.editable = NO;
/** 设置自动检测类型为链接网址. */
textView.dataDetectorTypes = UIDataDetectorTypeL
/** 设置链接文字的属性. */
textView.linkTextAttributes = @{NSForegroundColorAttributeName: [UIColor orangeColor]};
[self.view addSubview:textView];
/** 第二种连接界面: 文字链接 */
UITextView *otherTextView = [[UITextView alloc] initWithFrame:CGRectMake(30, 350, 300, 150) textContainer:nil];
/** font属性是设置text的字体, 但是它对attributedText的字体不起作用. */
otherTextView.layer.borderColor = [UIColor blackColor].CGC
otherTextView.layer.borderWidth = 1;
otherTextView.delegate =
otherTextView.editable = NO;
/** 详细内容请见博文说明中提到的另外一篇博客. */
NSAttributedString *linkAttribute = [[NSAttributedString alloc] initWithString:@"百度" attributes:@{NSLinkAttributeName: [NSURL URLWithString:@""], NSFontAttributeName:[UIFont systemFontOfSize:25]}];
otherTextView.attributedText = linkA
[self.view addSubview:otherTextView];
/** 当点击链接时, 是否要跳转到浏览器. 默认返回YES. 想要实现在应用程序内部跳转, 只需要返回NO即可. */
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange {
/** 跳转到WebViewController的WebView上. */
WebViewController *webContro = [[WebViewController alloc] init];
UIWebView *web = [[UIWebView alloc] initWithFrame:[UIScreen mainScreen].bounds];
/** URL参数就是我们点击的链接地址. */
[web loadRequest:[NSURLRequest requestWithURL:URL]];
web.scalesPageToFit = YES;
[webContro.view addSubview:web];
[self.navigationController pushViewController:webContro animated:YES];
/** 返回NO, 不跳转到浏览器. */
return NO;
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
Class : UITextView
/** 告诉代理人, 用户已经改变指定textView里面的text或者attributes. */
- (void)textViewDidChange:(UITextView *)textView
我们在使用UITextView的时候发现, UITextView没有像UITextField一样的占位符. 如果我们想要在UITextView里面实现占位符的效果, 该怎么办呢?
我们想要实现和UITextField一样的占位符效果, 那么我们就先看看UITextField是怎么实现的.
通过观察UITextField的图层, 我们发现, 占位符在一个单独的UILabel上.
我们让UITextField处于编辑状态, 再来看图层, 会发现在占位符label的上面又多了两层视图.
我们输入文字之后再看图层, 会发现占位符的lable没有了.
由此, 我们可以推测, 这个占位符label, 再输入之后, 就被隐藏了.
我们再来看UITextView的图层, 会发现它也有两个图层, 一个是UITextView, 一个是UITextContainerView. (还有两个滑条, 是UIImageView, 但是和我们实现的效果无关.)
那我们也可以仿照UITextField, 把一个label放到UITextContainerView的下面, 输入时就隐藏.
注: UITextView和UITextField 我是使用StoryBoard创建的, 所以在代码中没有创建的代码.
#import "ViewController.h"
/** 签订协议. */
@interface ViewController ()&UITextViewDelegate&
@property (weak, nonatomic) IBOutlet UITextView *textV
@property (nonatomic, strong) UILabel *label_P /**& 用来显示占位符的label. */
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
_textView.layer.borderColor = [UIColor blackColor].CGC
_textView.layer.borderWidth = 2;
/** 签订代理人, 实现效果需要用到代理方法. */
_textView.delegate =
/** 创建占位符label. */
self.label_Placeholder = [[UILabel alloc] initWithFrame:CGRectMake(5, 0, 200, 40)]; /**& 坐标要根据实际情况做出调整. */
/** 使用属性文本. 详情请查看博文说明中提到的另一篇博客. */
_label_Placeholder.attributedText = [[NSAttributedString alloc] initWithString:@"Hello World!" attributes:@{NSFontAttributeName: _textView.font, NSForegroundColorAttributeName: [UIColor grayColor]}];
/** 我们之前说过了, textView上有UITextContainerView 和 两个UIImageView 子视图, 我们把label_Placeholder放到UITextContainerView的下面, 也就是textView的第一个子视图. */
[_textView insertSubview:_label_Placeholder atIndex:0];
/** 可以打印textView的子视图看一下. */
NSLog(@"%@", [_textView subviews]);
/** 当textView里面的内容发生改变时, 调用这个代理方法. */
- (void)textViewDidChange:(UITextView *)textView
/** 判断条件是多次尝试的结果. 大家按照自己的想法, 尝试着写判断条件, 会更加理解为什么这么写了! */
if (_textView.text.length != 0 && _label_Placeholder.hidden == NO) {
_label_Placeholder.hidden = YES;
} else if (_textView.text.length == 0) {
_label_Placeholder.hidden = NO;
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
注: 还有四个关于编辑状态的代理方法, 可以调用它们, 看看它们都是在那些时刻被执行. 可以自己尝试别的方法实现占位符效果.
- (BOOL)textViewShouldBeginEditing:(UITextView *)textView
- (void)textViewDidBeginEditing:(UITextView *)textView
- (BOOL)textViewShouldEndEditing:(UITextView *)textView
- (void)textViewDidEndEditing:(UITextView *)textView
改变选中文本的属性
Class : UITextViews
/** 用户输入新的文本属性时, 会被存储在这个字典属性里. */
@property(nonatomic, copy) NSDictionary *typingAttributes
@property(nonatomic, readonly, retain) NSTextStorage *textStorage
/** 被选中的范围. */
@property(nonatomic) NSRange selectedRange
我们在看小说或文档时, 可以对一些重点内容进行标注, 例如, 加下划线, 改变颜色之类的. 那么UITextView里的内容, 我们是如何进行标注的呢?
首先获取到被选中的文本, 之后改变这段文本的属性设置.
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UITextView *textV
@property (nonatomic, strong) NSDictionary *oldA /** 用来接收textView文本的初始属性设置. */
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
/** 我们在textView的文本还未做出任何改变的时候, 将原始属性设置保存起来, 便于以后恢复. */
* 初始化oldAttributes.
* typingAttributes : 在用户没有输入新的文本属性时, 里面会有一些默认的文本属性.
self.oldAttributes = [NSDictionary dictionaryWithDictionary:[_textView typingAttributes]];
/** 打印看一下里面存储的内容. */
NSLog(@"old: %@", _oldAttributes);
* textStorage : UITextView的属性, 是NSTextStorage类型.
* NSTextStorage 继承于NSMutableAttributedString类, 所以可以使用父类的方法.
* 关于属性设置请查看博文说明中提到的博客.
* selectedRange : UITextView的属性, 是NSRange类型.
* textView当前被选择的文本.
/** 改变字体的笔画宽度. */
- (IBAction)wordWeight:(UIButton *)sender {
[_textView.textStorage addAttribute:NSStrokeWidthAttributeName value:@5 range:_textView.selectedRange];
/** 给选中的文本添加黄色背景, 以及下划线. */
- (IBAction)backgroundColor:(UIButton *)sender {
* 上面使用的是addAttribute: value: rang: 的方法. 它只能添加一个属性.
* 如果我们要同时添加多个属性, 我们需要使用addAttributes: rang: 方法.
* 这个方法的第一个参数是一个字典, 可以在字典中存储多个属性.
[_textView.textStorage addAttributes:@{NSBackgroundColorAttributeName: [UIColor yellowColor], NSUnderlineStyleAttributeName: @2} range:_textView.selectedRange];
* 要注意 addAttributes 和 setAttributes 的区别:
* addAttributes 是添加属性, 不会将之前的属性移除掉, 它们是共同存在的.
* setAttributes 是设置属性, 会将之前的属性替换掉, 之前的属性将不会存在.
/** 恢复到原来的文本状态. */
- (IBAction)recoverAttribute:(UIButton *)sender {
/** 我们想要恢复之前的属性, 也就是说不再使用做出改变的属性, 所以在这里我使用的是setAttributes: rang: 方法.
[_textView.textStorage setAttributes:_oldAttributes range:_textView.selectedRange];
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
API官方注释
A Boolean value indicating whether the receiver is editable.
* @discussion
The default value of this property is YES.
@property(nonatomic, getter=isEditable) BOOL editable
The types of data converted to clickable URLs in the text view.
* @discussion
You can use this property to specify the types of data (phone numbers, http links, and so on) that should be automatically converted to clickable URLs in the text view. When clicked, the text view opens the application responsible for handling the URL type and passes it the URL.
@property(nonatomic) UIDataDetectorTypes dataDetectorTypes
The attributes to apply to links.
* @discussion
The default attributes specify blue text with a single underline and the pointing hand cursor.
@property(nonatomic, copy) NSDictionary *linkTextAttributes
Asks the delegate if the specified text view should allow user interaction with the given URL in the given range of text.
&textView&
The text view containing the text attachment.
The URL to be processed.
&characterRange& The character range containing the URL.
YES if interaction with the URL NO if interaction should not be allowed.
- (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange:(NSRange)characterRange
Tells the delegate that the text or attributes in the specified text view were changed by the user.
&textView&
The text view containing the changes.
- (void)textViewDidChange:(UITextView *)textView
The attributes to apply to new text being entered by the user.
* @discussion
This dictionary contains the attribute keys (and corresponding values) to apply to newly typed text. When the text view’s selection changes, the contents of the dictionary are cleared automatically.
@property(nonatomic, copy) NSDictionary *typingAttributes
The text storage object holding the text displayed in this text view. (read-only)
* @discussion
This property is a convenience accessor that provides access through the text container.
@property(nonatomic, readonly, retain) NSTextStorage *textStorage
The current selection range of the receiver.
* @discussion
In iOS 2.2 and earlier, the length of the selection range is always 0, indicating that the selection is actually an insertion point. In iOS 3.0 and later, the length of the selection range may be non-zero.
@property(nonatomic) NSRange selectedRange
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:36871次
排名:千里之外
原创:57篇
(1)(2)(31)(2)(1)(1)(1)(9)(4)(6)iOS 中 UITextView 遇到的问题总结 - 推酷
iOS 中 UITextView 遇到的问题总结
由于iOS中的UITextField不支持文本换行,所以在有换行需求时,我们只好用UITextView。
以下是在使用UITextView时很容易遇到的一些问题。
问题一:UITextView显示边框
UITextView默认是没有边框颜色的,没有直接的属性来设置边框颜色。
可以使用layer属性来解决,代码如下:
//设置边框宽度
self.textView.layer.borderWidth = 1.0;
//设置边框颜色
self.textView.layer.borderColor = [UIColor grayColor].CGC
//设置圆角
self.textView.layer.cornerRadius = 5.0;
问题二:UITextView居中了,怎么居上?
实际上,UITextView的文本默认就是居上显示的,出现上面的情况很多都是因为在iOS7下使用了navigationController让scrollView自动适应屏幕造成的。(UITextView继承自UIScrollView)。
所以解决方案如以下代码:
if ([self respondsToSelector:@selector(setAutomaticallyAdjustsScrollViewInsets:)]) {
self.automaticallyAdjustsScrollViewInsets = NO;
问题三:UITextView添加placeholder灰色提示文字
UITextView没有UITextField的placeholder属性来提示输入框信息,也没有其他属性或接口来设置。
有人在UITextView上覆盖个UILabel来显示placeholder信息,也是一种解决思路。
但是从写程序的角度来说,用继承UITextView来解决问题似乎更加合理些。
新建UIPlaceholderTextView类继承自UITextView。
代码如下:
UIPlaceholderTextView.h文件
@interface UIPlaceholderTextView : UITextView
@property(nonatomic, strong) NSString *
//灰色提示文字
UIPlaceholderTextView.m文件
#import &UIPlaceholderTextView.h&
@implementation UIPlaceholderTextView
- (id)initWithFrame:(CGRect)frame {
if ((self = [super initWithFrame:frame])) {
[self awakeFromNib];
- (void)awakeFromNib {
[self addObserver];
#pragma mark 注册通知
- (void)addObserver {
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textDidBeginEditing:) name:UITextViewTextDidBeginEditingNotification object:self];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textDidEndEditing:) name:UITextViewTextDidEndEditingNotification object:self];
#pragma mark 移除通知
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
#pragma mark 开始编辑
- (void)textDidBeginEditing:(NSNotification *)notification {
if ([super.text isEqualToString:_placeholder]) {
super.text = @&&;
[super setTextColor:[UIColor blackColor]];
#pragma mark 结束编辑
- (void)textDidEndEditing:(NSNotification *)notification {
if (super.text.length == 0) {
super.text = _
//如果文本框内是原本的提示文字,则显示灰色字体
[super setTextColor:[UIColor lightGrayColor]];
#pragma mark 重写setPlaceholder方法
- (void)setPlaceholder:(NSString *)aPlaceholder {
_placeholder = aP
[self textDidEndEditing:nil];
#pragma mark 重写getText方法
- (NSString *)text {
NSString *text = [super text];
if ([text isEqualToString:_placeholder]) {
return @&&;
在使用UIPlaceholderTextView的控制器的viewDidLoad方法里添加如下代码
self.placeHolderTextView.placeholder=@&这一刻你想说什么......&;
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致iOS开发之自定义输入框(利用UITextField及UITextView)
来源:博客园
最近在做项目的时候经常自定义一些输入框,今天在这里分享给大家。
我的思路就是继承于系统的控件然后利用drawRect重画里面的控件。
那么drawRect是怎么工作的呢?
drawRect的工作原理:首先苹果是不推荐我们直接使用drawRect进行工作的,直接调用他也是没有任何效果的。苹果要求我们调用UIView类中的setNeedsDisplay方法,则程序会自动调用drawRect方法进行重绘。(调用setNeedsDisplay会自动调用drawRect)。
在UIView中,重写drawRect: (CGRect) aRect方法,可以自己定义想要画的图案.且此方法一般情况下只会画一次.也就是说这个drawRect方法一般情况下只会被调用一次。当某些情况下想要手动重画这个View,只需要掉用[self setNeedsDisplay]方法即可.drawRect调用是在Controller-&loadView, Controller-&viewDidLoad 两方法被调用之后调用的.所以不用担心在控制器中,这些View的drawRect就开始画了.这样可以在控制器中设置一些值给View(如果这些View draw的时候需要用到某些变量值).
 
1.如果在UIView初始化时没有设置rect大小,将直接导致drawRect不被自动调用。2.该方法在调用sizeThatFits后被调用,所以可以先调用sizeToFit计算出size。然后系统自动调用drawRect:方法。3.通过设置contentMode属性值为UIViewContentModeRedraw。那么将在每次设置或更改frame的时候自动调用drawRect:。4.直接调用setNeedsDisplay,或者setNeedsDisplayInRect:触发drawRect:,但是有个前提条件是rect不能为0.以上1,2推荐;而3,4不提倡
 
1.首先是可以多行输入的输入框(继承于UITextView,效果如下)


#pragma mark -- 初始化时调用 --
- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
初始化的时候为属性设置默认值
self.placeholder
= @"请输入文字";
self.placeholderColor = [UIColor lightGrayColor];
self.placeholderFont
= [UIFont systemFontOfSize:14];
用textVeiw添加通知,当textView发生变化的时候会调用textChanged方法
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(textChanged:) name:UITextViewTextDidChangeNotification object:nil];
return
}

#pragma mark -- 重绘(为textVeiw加上placeholder) --
- (void)drawRect:(CGRect)rect {
//如果文字消失了就会绘制placeholder
if (self.text.length == 0) {
CGRect placeholderRect = CGRectZ
placeholderRect.origin.x = 10;
placeholderRect.origin.y = 5;
placeholderRect.size.width = self.frame.size.width-10;
placeholderRect.size.height = self.frame.size.height-5;
[self.placeholder drawInRect:placeholderRect withAttributes:@{
NSFontAttributeName:_placeholderFont,
NSForegroundColorAttributeName:_placeholderColor
[super drawRect:rect];
}

#pragma mark -- 文字改变的时候会调用该方法
- (void)textChanged:(NSNotification *)notification {
在文字改变的时候就重绘
[self setNeedsDisplay];
}

#pragma mark -- 移除通知
- (void)dealloc {
[[NSNotificationCenter defaultCenter] removeObserver:self];
}

如果想自定义更多样式,可以给attribute多加一些属性就可以了!!!
2.自定义符合要求的输入框(继承于UITextField,效果如下)

 
 上面左视图只有两个圆角而且离上下左都有1px的间距,并且placeholder是在右边的。

- (instancetype)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
初始化属性,设置默认值
_placeholderFont = [UIFont systemFontOfSize:16];
_placeholderColor = [UIColor lightGrayColor];
CGFloat height = frame.size.
UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0, 1, height-1, height-2)];
leftView.backgroundColor = [UIColor redColor];
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Icon"]];
imageView.frame = CGRectMake(0, 0, height-1, height-2);
[leftView addSubview:imageView];
//利用这个方法可以使左视图只有两个圆角
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:leftView.bounds byRoundingCorners:UIRectCornerBottomLeft|UIRectCornerTopLeft cornerRadii:CGSizeMake(5, 5)];
CAShapeLayer *maskLayer = [[CAShapeLayer alloc] init];
maskLayer.frame = leftView.
maskLayer.path = maskPath.CGP
leftView.layer.mask = maskL
self.leftView = leftV
self.leftViewMode = UITextFieldViewModeA
NSLog(@"%s",__func__);
return
}
//这两个方法我也不知道有什么用,如果有知道的可以联系我告诉我一下
/*
#pragma mark -- 重置边界区域
- (CGRect)borderRectForBounds:(CGRect)bounds {
CGRect borderRect = [super borderRectForBounds:bounds];
return borderR
}

#pragma mark -- 重置文字区域
- (CGRect)textRectForBounds:(CGRect)bounds {
CGRect textRect = [super textRectForBounds:bounds];
return textR
}
*/

#pragma mark -- 重置placeholder
- (CGRect)placeholderRectForBounds:(CGRect)bounds {
CGRect placeholderRect = [super placeholderRectForBounds:bounds];
使placeholder居右
CGFloat placeholderWidth = [self.placeholder boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:_placeholderFont} context:nil].size.
placeholderRect.origin.x += placeholderRect.size.width-placeholderWidth-5;
return placeholderR
}

#pragma mark -- 重置编辑区域
- (CGRect)editingRectForBounds:(CGRect)bounds {
CGRect editingRect = [super editingRectForBounds:bounds];
return editingR
}

#pragma mark -- 重置删除按钮区域
- (CGRect)clearButtonRectForBounds:(CGRect)bounds {
CGRect clearButtonRect = [super clearButtonRectForBounds:bounds];
return clearButtonR
}

#pragma mark -- 重置左视图区域
- (CGRect)leftViewRectForBounds:(CGRect)bounds {
CGRect leftViewRect = [super leftViewRectForBounds:bounds];
leftViewRect.origin.x += 1;
return leftViewR
}

#pragma mark -- 重置右视图区域
- (CGRect)rightViewRectForBounds:(CGRect)bounds {
CGRect rightViewRect = [super rightViewRectForBounds:bounds];
return rightViewR
}

#pragma mark -- 重绘文字(这个方法他成为第一响应者之后才调用的)
- (void)drawTextInRect:(CGRect)rect {
[super drawTextInRect:rect];
self.textColor = [UIColor purpleColor];
}

#pragma mark -- 重绘placeholder//在第一次显示的时候是先调用了placeholderRectForBounds:这个方法,然后再调用该方法//之后显示的时候都是在调用了placeholderRectForBounds:方法之后,调用该方法,之后再调用placeholderRectForBounds:方法,这就会使placeholder的位置发生偏移(当他成为第一响应者的时候就不会居中对齐了,如果有知道怎么解决的,请联系我一下,谢谢!!!)
- (void)drawPlaceholderInRect:(CGRect)rect {
[super drawPlaceholderInRect:rect];
调用kvo修改系统的_placeholderLabel的属性
[self setValue:_placeholderColor forKeyPath:@"_placeholderLabel.textColor"];
[self setValue:_placeholderFont
forKeyPath:@"_placeholderLabel.font"];
}

如果有需要这个demo的,可以去我的空间下载,也可以加我qq:,一起交流一下哦!!!
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动

我要回帖

更多关于 ios 代理继承 的文章

 

随机推荐