- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嘿,我有一个来自RqButton
的类UIButton
,我用它来个性化按钮。
如果执行button = [[RqButton alloc] initWithFrame:CGRectMake(xz, yz, sq, sq)];
,则一切正常,但是我想将另一个参数传递给RqButton
,我不知道如何。
这是我的RqButton.m
#import "RqButton.h"
@implementation RqButton
+ (RqButton *)buttonWithType:(UIButtonType)type
{return [super buttonWithType:UIButtonTypeCustom];}
- (void)drawRect:(CGRect)rect r:(int)r
{
CGContextRef ctx = UIGraphicsGetCurrentContext();
float width = CGRectGetWidth(rect);
float height = CGRectGetHeight(rect);
UIColor *borderColor = [UIColor colorWithRed:0.99f green:0.95f blue:0.99f alpha:1.00f];
CGFloat BGLocations[2] = { 0.0, 1.0 };
CGFloat BgComponents[8] = { 0.99, 0.99, 0.0 , 1.0,
0.00, 0.00, 0.00, 1.0 };
CGColorSpaceRef BgRGBColorspace = CGColorSpaceCreateDeviceRGB();
CGGradientRef bgRadialGradient = CGGradientCreateWithColorComponents(BgRGBColorspace, BgComponents, BGLocations, 2);
UIBezierPath *roundedRectanglePath = [UIBezierPath bezierPathWithRoundedRect: CGRectMake(0, 0, width, height) cornerRadius: 5];
[roundedRectanglePath addClip];
CGPoint startBg = CGPointMake (width*0.5, height*0.5);
CGFloat endRadius= r;
CGContextDrawRadialGradient(ctx, bgRadialGradient, startBg, 0, startBg, endRadius, kCGGradientDrawsAfterEndLocation);
CGColorSpaceRelease(BgRGBColorspace);
CGGradientRelease(bgRadialGradient);
[borderColor setStroke];
roundedRectanglePath.lineWidth = 2;
[roundedRectanglePath stroke];
}
@end
CGrect
和int r的同时调用该类,以便在
CGFloat endRadius = r行中使用它;
button = [[RqButton alloc] initWithFrame:CGRectMake(xz, yz, sq, sq) :1];
不能像这样工作,但是现在,实际执行的方式是什么?
最佳答案
您需要做的就是在RqButton中创建一个新的init
方法,该方法将使用initWithFrame
的super
。在自定义初始化中添加另一个参数以在自定义初始化中使用。
RqButton.m
- (id)initWithFrame:(CGRect)rect radius:(CGFloat)r
{
if(self = [super initWithFrame:rect])
{
// apply your radius value 'r' to your custom button as needed.
}
return self;
}
RqButton *customButton = [[RqButton alloc] initWithFrame:CGRectMake(xz, yz, sq, sq) radius:2.0];
关于ios - 通过initWithFrame:CGRectMake()传递另一个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25668921/
在为 iOS 7 更新我的代码后,我遇到了一个继续让我感到困惑的问题。这段代码在 iOS 6 中运行良好: -(void)showPDFFile { NSString* fileName = @"Re
我刚刚开始制作一个带有导航栏的新应用。我在 AppDelegate.m 中使用导航创建了第一个 View 。 AppDelegate.m : - (BOOL)application:(UIApplic
我正在为我的 swift spriest 项目编写一个按钮。但是按钮的位置搞砸了。我希望它位于中间,但它位于某个随机位置。 let button = UIButton(type: .System) /
CGRectMake 是否有可能因为某些奇怪的原因返回 nil?因为我在某些设备上遇到了崩溃: Fatal Exception: NSInvalidArgumentException (null):
我在一个 ViewControler 中有 2 个 UIToolbar。 我需要改变他们在旋转时的位置。 我添加了 2 个网点 @property (nonatomic, retain) IBOutl
嘿,我有一个来自RqButton的类UIButton,我用它来个性化按钮。 如果执行button = [[RqButton alloc] initWithFrame:CGRectMake(xz, yz
我没有在 Storyboard中定义任何约束,只是拖放一些文本字段和按钮。我正在尝试以编程方式更新它们的大小和位置。我引用它们 IBOutlets 并尝试使用 CGRectMake() 在 viewD
我正在尝试扩展以适合屏幕剩余高度的 View 。问题是我正在尝试在 iPhone 4 和 iPhone 5 布局上执行此操作。 我想要做的是使用我的 CGRectMake 代码,以便框架仅锚定到主视图
我遇到了一个非常奇怪的问题: 我在 for 循环 中使用 CGRectMake 方法实例化多个 UIImageView,我给出的 y 原点似乎完全错误屏幕: 这是我的代码: - (void)makeT
我今天花了几个小时只是为了在我的应用程序加载时隐藏 PickerView,但问题不在于 PickerView。它与 CGRectMake 一起使用。 我在 Xcode 上尝试了一个简单的项目,只是为了
由于 CGRectMake 在 swift 3.0 中不可用并且迁移器没有转换它我需要手动替换它并且它在我的代码中使用了 300 多次所以任何人都可以帮助我开发正则表达式以便我可以找到并替换代码。我想
我的 iPhone 应用程序中有一个简单的屏幕,我希望在屏幕底部有一个 320x100 的矩形来捕捉触摸。这是我在 touchesBegan:withEvent 中的代码: for (UITouch
这听起来非常愚蠢和愚蠢,但我接触过几种语言,它们有点扰乱了我的……方向感或其他东西: 在 Objective-C 中,您可以使用 CGRectMake(x,y,w,h) 来创建一个矩形。很酷。 所以
我很好奇为什么像 CGRectMake 和 CGPointMake 这样的函数存在并被广泛使用。什么时候,你可以这样做: (CGRect){{x, y}, {width, height}} 因为没有函
我通常对所有代码使用CGRectMake方法。还有其他有用的便捷方法吗? 最佳答案 有用的核心显卡功能 NSLog(@"%@", CGRectCreateDictionaryRepresentatio
我有一个方法: -(void) generateButtons { int positionsLeftInRow = BUTTONS_PER_ROW; int j = 0; for (int i =
我试图通过实用地创建和堆叠标签来输出一个帐户的“ friend ”列表。我已经从 MySQL 数据库(可通过与 PHP 脚本交互的 NSURL 访问)中获取帐户的 friend 并将它们加载到一个数组
我在尝试以编程方式将我的椭圆居中时遇到问题,目前我有这段代码 func setupLayers(){ let oval = CAShapeLayer() ova
当我在程序中使用 CGRectMake 时,它的行为很奇怪。在 Interface Builder 中,我的按钮的坐标为 (260, 388) 并且始终处于纵向模式。当我输入以下代码(只是为了实验)时
这个问题在这里已经有了答案: CGRectMake, CGPointMake, CGSizeMake, CGRectZero, CGPointZero is unavailable in Swift
我是一名优秀的程序员,十分优秀!